All.spawn(2) — различия между версиями — S.T.A.L.K.E.R. Inside Wiki

All.spawn(2) — различия между версиями

Материал из S.T.A.L.K.E.R. Inside Wiki

Перейти к: навигация, поиск
м (первая правка)
 
м (Второй блок: первая правка)
Строка 27: Строка 27:
 
==Второй блок==
 
==Второй блок==
  
<big>1-й уровень</big>
 
  
 +
{|
 +
|+
 +
|-
 +
!<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 ее размер равен CD F6 26 00 (2553549) байт.
+
Содержит вложенную секцию, в версии 1.(много нолей)1
  
<big>2-й уровень</big>
+
ее размер равен 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 содержимое секции
 
+
<big>4-й уровень</big>
+
 +
|
 
  размер описание комментарий  
 
  размер описание комментарий  
 
  (байт)
 
  (байт)
Строка 75: Строка 95:
 
  2 еще раз размер L3-2=L4
 
  2 еще раз размер L3-2=L4
 
  L4 содержание секции 2
 
  L4 содержание секции 2
+
|+
<big>5-й уровень. Секция 1</big>
+
|}
  
 +
{|
 +
|+
 +
|-
 +
!<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>
 +
|-
 +
|Вот здесь и находится самое интересное. Встречается несколько типов секций. Однозначно сказать, чем отличается каждая я пока не могу. Попробую перечислить уже знакомые.
 +
|}
 +
|+
 +
|}
  
<big>6-й уровень. Секция 1</big>
+
== [[all.spawn(2)_Object_types|Типы объектов]] ==
  
Вот здесь и находится самое интересное. Встречается несколько типов секций. Однозначно сказать, чем отличается каждая я пока не могу. Попробую перечислить уже знакомые.
+
Переходим и смотрим дальше ;)
  
[[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.

  1. "шапка"
  2. объединенные файлы level.spawn
  3. сетка координат (пока непонятно чего)
  4. список переменных используемых во втором блоке

похоже, что 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 байта
5-й уровень. Секция 2
Если секция есть, то содержит копию координат из секции 1, вектора вращения представлены в виде 0, Y, X, то есть в обратном порядке с опущенной Z координатой. Только есть еще 2-3 непонятных кода.
6-й уровень. Секция 1
Вот здесь и находится самое интересное. Встречается несколько типов секций. Однозначно сказать, чем отличается каждая я пока не могу. Попробую перечислить уже знакомые.

Типы объектов

Переходим и смотрим дальше ;)

Другие места
LANGUAGE