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

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

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

Перейти к: навигация, поиск
м (третий блок)
м (инфа в процессе корректировки...)
Строка 1: Строка 1:
==Введение==
+
инфа в процессе корректировки...
 
+
--[[Участник:HikeR|HikeR]] 03:10, 6 мая 2007 (MSD)
Разбор 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.
+
 
+
 
+
==Второй блок==
+
 
+
 
+
{|
+
|+
+
|-
+
!<big>1-й уровень</big>||<big>2-й уровень</big>
+
|-
+
|
+
размер описание комментарий
+
(байт)
+
------------------------------------------
+
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 содержание
+
+
+
+
+
+
.
+
+
.
+
|+
+
|}
+
 
+
{|
+
|+
+
|-
+
!<big>3-й уровень</big>||<big>4-й уровень</big>
+
|-
+
|
+
размер описание комментарий
+
(байт)
+
------------------------------------------
+
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
+
|+
+
|}
+
 
+
{|
+
|+
+
|-
+
!<big>5-й уровень. Секция 1</big>|| 
+
|-
+
|
+
размер описание комментарий
+
(байт)
+
------------------------------------------
+
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 байта
+
|
+
 
+
{|
+
|-
+
!<big>5-й уровень. Секция 2</big>
+
|-
+
|Если секция есть, то содержит копию координат из секции 1, вектора вращения представлены в виде 0, Y, X, то есть в обратном порядке с опущенной Z координатой. Только есть еще 2-3 непонятных кода.
+
|-
+
!<big>6-й уровень. Секция 1</big>
+
|-
+
|Вот здесь и находится самое интересное. Встречается несколько типов секций. Однозначно сказать, чем отличается каждая я пока не могу. Попробую перечислить уже знакомые.
+
|}
+
|+
+
|}
+
 
+
== Третий блок ==
+
 
+
Первые 4 байта - количество объектов. 33 A6 00 00 = 42547
+
 
+
Размер третьего блока - 850940 (без первых 4-х байт)
+
 
+
В итоге имеет размер объекта 20 байт.
+
 
+
 
+
 
+
== [[all.spawn(2)_Object_types|Типы объектов]] ==
+
 
+
Переходим и смотрим дальше ;)
+
 
+
[[Категория:Форматы файлов]]
+

Версия 23:10, 5 мая 2007

инфа в процессе корректировки... --HikeR 03:10, 6 мая 2007 (MSD)

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