All.spawn(2) — различия между версиями
Материал из S.T.A.L.K.E.R. Inside Wiki
HikeR (обсуждение | вклад) м (восставшая из пепла ;)) |
(<<< aka_sektor) |
||
(не показаны 7 промежуточные версии 5 участников) | |||
Строка 3: | Строка 3: | ||
Разбор all.spawn (попытка 2) | Разбор all.spawn (попытка 2) | ||
− | Здесь я постараюсь описать структуру файла all.spawn для игры [[S.T.A.L.K.E.R.:_Shadow_of_Chernobyl]] найденную методом проб и ошибок. Так как появление SDK пока еще за горами, то я надеюсь, что эта информация | + | Здесь я постараюсь описать структуру файла all.spawn для игры [[S.T.A.L.K.E.R.:_Shadow_of_Chernobyl]] найденную методом проб и ошибок. Так как появление SDK пока еще за горами, то я надеюсь, что эта информация смoжет оказаться полезной для модостроителей и откроет новые горизонты для этого нелегкого и интересного занятия. |
==Структура== | ==Структура== | ||
Строка 151: | Строка 151: | ||
Переходим и смотрим дальше ;) | Переходим и смотрим дальше ;) | ||
− | + | [[Категория:Неоформленные статьи]] | |
− | [[Категория: | + |
Текущая версия на 23:15, 19 марта 2014
Введение
Разбор all.spawn (попытка 2)
Здесь я постараюсь описать структуру файла all.spawn для игры S.T.A.L.K.E.R.:_Shadow_of_Chernobyl найденную методом проб и ошибок. Так как появление SDK пока еще за горами, то я надеюсь, что эта информация смoжет оказаться полезной для модостроителей и откроет новые горизонты для этого нелегкого и интересного занятия.
Структура
размер (байт) описание комментарий ------------------------------------------- 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 байта |
|
Третий блок
Первые 4 байта - количество объектов. 33 A6 00 00 = 42547
Размер третьего блока - 850940 (без первых 4-х байт)
В итоге имеет размер объекта 20 байт.
Типы объектов
Переходим и смотрим дальше ;)