All.spawn(2) — различия между версиями
Материал из S.T.A.L.K.E.R. Inside Wiki
HikeR (обсуждение | вклад) м (первая правка) |
HikeR (обсуждение | вклад) м (→Второй блок: первая правка) |
||
Строка 27: | Строка 27: | ||
==Второй блок== | ==Второй блок== | ||
− | |||
+ | {| | ||
+ | |+ | ||
+ | |- | ||
+ | !<big>1-й уровень</big>||<big>2-й уровень</big> | ||
+ | |- | ||
+ | | | ||
размер описание комментарий | размер описание комментарий | ||
(байт) | (байт) | ||
Строка 40: | Строка 45: | ||
4 номер секции 02 00 00 00 | 4 номер секции 02 00 00 00 | ||
4 пустышка 00 00 00 00 | 4 пустышка 00 00 00 00 | ||
− | Содержит вложенную секцию, в версии 1.(много нолей)1 | + | Содержит вложенную секцию, в версии 1.(много нолей)1 |
− | + | ее размер равен CD F6 26 00 (2553549) байт. | |
− | + | | | |
− | + | ||
размер описание комментарий | размер описание комментарий | ||
(байт) | (байт) | ||
Строка 51: | Строка 55: | ||
4 размер L1 | 4 размер L1 | ||
L1 содержание | L1 содержание | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | . | ||
+ | |||
+ | . | ||
+ | |+ | ||
+ | |} | ||
− | <big>3-й уровень</big> | + | {| |
+ | |+ | ||
+ | |- | ||
+ | !<big>3-й уровень</big>||<big>4-й уровень</big> | ||
+ | |- | ||
+ | | | ||
размер описание комментарий | размер описание комментарий | ||
(байт) | (байт) | ||
Строка 62: | Строка 81: | ||
4 размер вложенной секции L2 | 4 размер вложенной секции L2 | ||
L2 содержимое секции | L2 содержимое секции | ||
− | + | ||
− | + | ||
+ | | | ||
размер описание комментарий | размер описание комментарий | ||
(байт) | (байт) | ||
Строка 75: | Строка 95: | ||
2 еще раз размер L3-2=L4 | 2 еще раз размер L3-2=L4 | ||
L4 содержание секции 2 | L4 содержание секции 2 | ||
− | + | |+ | |
− | + | |} | |
+ | {| | ||
+ | |+ | ||
+ | |- | ||
+ | !<big>5-й уровень. Секция 1</big>|| | ||
+ | |- | ||
+ | | | ||
размер описание комментарий | размер описание комментарий | ||
(байт) | (байт) | ||
Строка 97: | Строка 123: | ||
2 номер объекта | 2 номер объекта | ||
2 размер вложенной секции включая эти 2 байта | 2 размер вложенной секции включая эти 2 байта | ||
+ | | | ||
− | <big>5-й уровень. Секция 2</big> | + | {| |
− | + | |- | |
− | Если секция есть, то содержит копию координат из секции 1, вектора вращения представлены в виде 0, Y, X, то есть в обратном порядке с опущенной Z координатой. Только есть еще 2-3 непонятных кода. | + | !<big>5-й уровень. Секция 2</big> |
+ | |- | ||
+ | |Если секция есть, то содержит копию координат из секции 1, вектора вращения представлены в виде 0, Y, X, то есть в обратном порядке с опущенной Z координатой. Только есть еще 2-3 непонятных кода. | ||
+ | |- | ||
+ | !<big>6-й уровень. Секция 1</big> | ||
+ | |- | ||
+ | |Вот здесь и находится самое интересное. Встречается несколько типов секций. Однозначно сказать, чем отличается каждая я пока не могу. Попробую перечислить уже знакомые. | ||
+ | |} | ||
+ | |+ | ||
+ | |} | ||
− | + | == [[all.spawn(2)_Object_types|Типы объектов]] == | |
− | + | Переходим и смотрим дальше ;) | |
− | [[ | + | [[Категория:Форматы файлов]] |
Версия 20:08, 3 мая 2007
Введение
Разбор all.spawn (попытка 2)
Здесь я постараюсь описать структуру файла all.spawn для игры S.T.A.L.K.E.R.:_Shadow_of_Chernobyl найденную методом проб и ошибок. Так как появление SDK пока еще за горами, то я надеюсь, что эта информация смжет оказаться полезной для модостроителей и откроет новые горизонты для этого нелегкого и интересного занятия.
Структура
размер (байт) описание комментарий ------------------------------------------- 4 номер блока 00 00 00 00 4 размер блока (L1) L1 содержание блока
На текущий момент всего таких блоков 4.
- "шапка"
- объединенные файлы level.spawn
- сетка координат (пока непонятно чего)
- список переменных используемых во втором блоке
похоже, что 4-й блок компилируется с использованием файлов level.game из каталогов уровней.
Первый блок
Пока в изучении. Можно только сказать, что по смещению 44 (здесь и далее смещение приводится в десятичном виде, если не указано обратное, а также за ноль принято начало блока) находится 2-байтовое значение, которое содержит количество всех объектов. В версии 1.0001 и 1.0002 оно равно 8641.
Второй блок
1-й уровень | 2-й уровень |
---|---|
размер описание комментарий (байт) ------------------------------------------ 4 номер секции 00 00 00 00 4 размер след. параметра L1 L1 количество объектов 4 номер секции 01 00 00 00 4 размер вложенной секции L2 L2 содержание секции 4 номер секции 02 00 00 00 4 пустышка 00 00 00 00 Содержит вложенную секцию, в версии 1.(много нолей)1 ее размер равен CD F6 26 00 (2553549) байт. |
размер описание комментарий (байт) ------------------------------------------ 4 номер объекта 00 00 00 00 4 размер L1 L1 содержание . . |
3-й уровень | 4-й уровень |
---|---|
размер описание комментарий (байт) ------------------------------------------ 4 номер секции 00 00 00 00 4 размер след. параметра L1 L1 номер объекта 01 00 00 00 разделитель 4 размер вложенной секции L2 L2 содержимое секции |
размер описание комментарий (байт) ------------------------------------------ 4 номер секции 00 00 00 00 4 размер вложенной секции L1 2 еще раз размер L1-2=L2 L2 содержание секции 1 4 номер секции 01 00 00 00 4 размер вложенной секции L3 2 еще раз размер L3-2=L4 L4 содержание секции 2 |
5-й уровень. Секция 1 | |||||
---|---|---|---|---|---|
размер описание комментарий (байт) ------------------------------------------ 01 00 начало секции всегда 01 00 x текст до первого 00 y текст до первого 00 00 FE разделитель всегда 00 FE 4 координата X float 4 координата Y float 4 координата Z float 4 координата X вращение,float 4 координата Y вращение,float 4 координата Z вращение,float 00 00 FF FF FF FF FF FF разделитель 4 неизвестно почти всегда равно 29 00 76 00 (кроме пары десятков случаев) 4 версия игры 06 00 00 00 2 номер объекта 2 размер вложенной секции включая эти 2 байта |
|
Типы объектов
Переходим и смотрим дальше ;)