PlayTruckSims: Грузовые симуляторы, Дальнобойщики, Euro Truck Simulator 2, American Truck Simulator

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



Декодинг PMA\PMG\PMC\PMD

Сообщений 1 страница 30 из 142

1

Предлагаю...совместными усилиями добить и расдекодить основые файлы...

PMG - разобран на 85%
PMA - 99%
PMC - 75%
PMD - 75%

Собсно ...Заноза при экспорте..файла..отсеивает блок анимаций...корячит тень.путает текстуры...
Ручками можно восстановить блок анимации. структуру я примерно разобрал, есть под гекс...
Структура Аним.файла.. файл PMA состоит:

struct PMA
{
      LONG   shapka;
      DWORD UnknownValue;
      DWORD UnknownValue;
      LONG  num_blocks;
      LONG  num_objects;
      FLOAT amplitud;
      LONG UnknownValue;
      LONG UnknownValue;
      LONG UnknownValue;
      LONG Checksum_file;
      LONG Type_anim;
      DWORD NxL2;
      BYTE one_byte_num_anim;
      BYTE two_byte_num_anim;
};
далее идут блоки по 56 байт...
в которых ..ротайтинги\шкалинги\координаты...центров обьектов.

пример...индикаторы...
например левая стрелка состоит из 2 обьектов ( 2 положения стрелки)
и 2 аним.фреймов
кол-во блоков.4 соотв 2х2.
4 блока
1 block - перемещение индикатора (ON)
2 block - перемещение индикатора (OFF)
3 block - исходное место индикатора (ON)
4 block - исходное место индикатора (OFF)
таким образом...просто напросто стрелки меняются местами...
нам достаточно изменить..в занозе расположение..в пма только координаты..

стрелка..состоит из 5 блоков..круг делится на 5 частей, спидометр\тахрометр, полустрелки\на 4 блока
нам нужно сдвинуть координаты центров...в занозе\\соотв и в гексе..сместить+ в 5 блоках поменять в пма файле...
--------если будем разбирать приведу конкретный пример...

пмс...опять же ручками дописываем 24 байта от оригинала
пмд...просто..забейте на всякие автоматы..теже именна файлов..
пример тому мой прицеп..с 17ю ткстурами...причем часть использует текстуры ГРУЗОВИКОВ....и никакой одной текстуры...также перекраска прицепа одновременно с траком...

3 дворник например модно добавить но у дворников 17 аним.фреймов.и 2 обьекта..соотв. 34 блока..

тут требуется елементарные знания хекса...будем разбирать вместе...

+4

2

Lex[GOD]
по ПМД есть чё интересного?
у мну пока вот:
чёто новенького появилось?..

Код:
//header
char{48}//какая-то хня
int32{4}//оффсет начала блока описания матов
char{8}//опять какая-то хня
int32{4}//размер хидера
char{x}//ещё хня, попка забьём на неё,
int32{4}//const 1
//for each mat
 int32{4}//offset from beginning
//end header;

//material names block
//for each mat
char{x}//name
byte{1}//const padding 0

0

3

а че это за файлы?

0

4

Lex[GOD]
да! вот он светлый ум! прочел первый раз и мозг задымился. со второго раза начал впитывать. :-)
держи +
и вопрос. гекс это чего? где взять?

+1

5

Теперь подробней про ПМГ...
В шапке содержится..кол-во обьектов\кол-во думмисов\кол-во иерархий..

самое интересное начинается с 284 оффсета...

144 байта - блок анимации + 56 байт копия блока из pma файла.
разберем на примере дворников
wips.pmg
ориг. файл= 6212 байта, после занозы 5362 файла...аним блок отсутсвует.

10676D50 - шапка
02000000 - колличество обьектов
01000000 - кол-во групп иерарх
03000000 - кол-воаним фреймов
00000000
A312073E - оффсеты
28871640 - оффсеты
05D32EC0 - оффсеты
2D36543F - оффсеты
5C000000 - начало стрингов
B4020000 - конец стрингов

соотв внутри и идет аним.блоки..

начиная с 284 байта..выделяем 144 байта

0000803FFF290D0AC34A0F63000000000000803F000000000000000047E82CBF000000000000803F000000009BD1114000000000000000000000803F254D31C00000000000000000000000000000803F0000803F000000000000000047E82C3F000000000000803F000000009BD111C000000000000000000000803F254D31400000000000000000000000000000803F

FFF290D0A - 29 тип обьекта.0D0A - разделитель встречается во всех 3блоках..

далее идут 56 байт из пма..блок 1..
далее следущиее 144 и следущий блок 2 из випс.пма.

ну и концовка 0000803F00290D0A далее EABBA702 - пошла геометрия..нам она не нужна.
т.е. один блок анимации 144+56.= 200 байт на один аним.фрейм.

----------------------------
структура блока 56 байт..в пма.
struct PMAblock
{
FLOAT Const1;
FLOAT Const0;
FLOAT Const0;
FLOAT Const0;
FLOAT UnknownValue;
FLOAT RoatX;
FLOAT RoatY;
FLOAT RoatZ;
FLOAT CoordX;
FLOAT CoordY;
FLOAT CoordZ;
FLOAT ScaleX;
FLOAT ScaleY;
FLOAT ScaleZ;
};
hex Workshop

Отредактировано Lex[GOD] (2007-12-27 09:47:53)

0

6

Если бы еще кто разбирался.  :lol:  В ПМД, ПМГ и так все ясно, можно даже не парится. Вопрос только к ПМА, например в занозе переставил стрелки, руль, дворники, сохранил, изменил в хексе несколько строчек и чтоб все заработало, а так хрен кто разберет! http://img178.imageshack.us/img178/8716/biggrinhq9.gif

0

7

ну примерно так и есть...в пмг менять ..обязательно
ибо координаты смещений и центров осей...оттуда идут не спроста..
если просто подвинешь и вставишь обратно аним.блок, то стрелки и руль будут вращаться относительно старых центров

поэтому и в пмг и в пма меняем координаты...с ротациями намного намного сложнее..если вы хотите наклонить руль или стрелки..придется примерно высчитывать координаты и углы..и переписывать их..в пма...

+1

8

http://img246.imageshack.us/img246/6735/laughbt3.gif ужас...надо бы добить ПМГ...

0

9

Ну что? Может расскажите как переделать анимацию под свой салон? =)

0

10

Bu11et_86, скорее всего никак... что то автор этой темы забросил "декодинг"... :dontknow:

0

11

Декодинг я не забрасывал...просто никто не помогает...соотв некому это по большому счету не нужно.
индикаторы подвинуть просто...
а вот со стрелками лучше не начинать даже..если в хексе на уровне профи неможешь работать...кучу координат\вершин\ротаций\шкалинга. менять
для камаза и мерседеса O 345 2 салона с нуля я сделал..на этом все.

Отредактировано Lex[GOD] (2008-06-24 10:50:03)

+2

12

Lex[GOD] Тоесть, как я понял, в самопальных салонах используется анимация от салонов из игры? А руль то хоть как то возможно поменять? Ну например если поставить новый руль на координаты прежнего и припомощи хекс редактора добавить недостающие блоки анимации, обрезанные занозой.

0

13

в самопальных салонах идет стандартная анимация

стрелки\руль\кнопки
поменять нельзя...у руля гдето 37 точек вращения и углов..попробуй вычисли..максимум можно вершины передвинуть...у него.

+1

14

Lex[GOD]А вообще иные варианты по редактированию анимации есть??? может для макса плагин наваять??? понимаю что звучит глупо, но чем черт не шутит...

+1

15

Lex[GOD] извини меня конечно, но ты так говориш, какбуд то все хекс знают. лично я его нихрена не знаю.. только модель ломануть пттм и все. ну коллизию поправить. pmd отредактировать немного, но не больше того. а ты говориш анимацию править

0

16

по PMG - в ETS\ALH структура усложнилась..блоков стало 7.описание оффсетов..в шапке
на примере anim.pmg от volvo_fh16

оффсет 60 - чексумма офсета начала 1го блока(анимблок)             116
оффсет 64 - чексумма офсета конца 1го блока(=начало 2го блока)    6516
офф 68 - чексумма офсета начала 2го блока                         6540
офф 72 - чексумма офсета конца 2го блока                          6540
офф 76 - чексумма офсета начала 3го блока(=конец предыдущего)     7116
офф 80 - чексумма размера 3го блока                                  0
офф 84 - чексумма офсета начала 4го блока(=конец предыдущего)     7116
офф 88 - чексумма размера 4го блока                              10120
офф 92 - чексумма офсета начала 5го блока(=конец предыдущего)    17236
офф 96 - чексумма размера 5го блока                             119904
офф100 - чексумма офсета начала 6го блока(=конец предыдущего)   137140
офф104 - чексумма размера 6го блока                              59952
офф108 - чексумма офсета начала 7го блока(=конец предыдущего)   197092
офф112 - чексумма размера 7го блока                              17724

108+112 = размер всего файла = 214816

после блока1  стоит константа 24 байта 00F11BEEAAC1AD0206000000000000000000000000000000

нада резать 10 байт те лишние. обнулять 4х размерный блок и восстанавливать следующий вырезанный
тада мож заработает

блок4 сруктура - 6 подблоков по 96 байт. видны офсетные ссылки на след. блок(офсеты дробления след. блока)

------------------------
по поводу самой анимации..все запущено все работает, изменялись только PMA файлы - геометрия и anim.pmg даже не трогался..
таким образом можно изменять..координаты\размеры\вращение и.т.п. все Хексом естественно.
с геометрией самой пока туго..да и врятли что путного выйдет.

Отредактировано Lex[GOD] (2008-08-25 16:21:23)

0

17

ОБНОВЛЕНИЕ ПО ТЕМЕ:

Разобрано:
PMA - 100%  - Анимация
PMC- 100% - Тень и коллизия
PMD - 99%  - Текстуры и Варианты
PMG - 90% (ETS-75%) -Геометрия и анимация

Код:
Обновление по структуре файла: PMD 

off 0 - Шапка файла
off 4 - Количество материалов в моделе (*.pmg)
off 8 - Количество вариантов (покрасок, скинов) в моделе (*.pmg)
off 12 - Количество деталей (мешев) в моделе (*.pmg)
off 16 - Количество вариантов деталей в моделе (*.pmg)
off 20 - Количество блоков (вариантов текстур\мешей)
off 24 - Количество блоков (вариантов текстур\мешей) часть 2
off 28 - Неизвестно
off 32 - Размер блока материалов
off 36 - Начало блока для Варианта 1
off 40 - Начало блока для Варианта 2
off 44 - Начало блока 2 
off 48 - Конец блока 2
off 52 - Начало подблока блока 2
off 56 - Начало блока 3
off 60 - Конец блока 3 и начало блока материалов

off 32+ off 60 = Чексумма всего файла.

теперь подробней про 3 блок
в нем подряд идут 4байта (LONG) зависит от кол-во материалов..в них указывается..байт начала\каждой текстуры..поэтому  у нас неполучалось добавлять свои..или редактировать сущ.(ну теперь думаю нкиаких автоматов нам не понадобитцаца
CЛОМЛЕННО ОГРАНИЧЕНИЕ НА КОЛ_ВО ТЕКСТУР И ПУТИ К НИМ.

Отредактировано Lex[GOD] (2008-08-27 15:52:54)

+1

18

Lex[GOD]
ты чей pmd привёл в примере? потомучто у разных моделей оффсеты у всех разные

Отредактировано Qadrox (2008-08-28 20:58:12)

0

19

вопервых не  PMC - а PMD - оффсеты у всех файлов одинаковые
начинатца блоки могут с разных байт..но в шапке все оффсеты прописываются...где какой байт начинаетсякончается\могу скинуть структурку под хекс

MirkOne и DANZ - ваши минусы..в моих постах..это просто неуважение к пользователю...,а также ваше полное неумение и безразличие к ситуации.(кстати это запрещенно правилами)а.....большего вы не заслуживаете.

по TOBJ

Offset 40 - размер блока материалов
offset 12 - размер и кол-во тайла

0

20

Что в тобджах редактировать надо?

0

21

да ХЗ...берем ориг.тобж
пишем туда свое и меняем кол-во байт..на матблок..тогда текстуры можно тайлить..прально..и ничего плыть не будет.

0

22

PMC - 100%

делаем свои коллизии...и казусии:

один блок:(1 деталь(куб) состоит из 64 байт.
кол-во блоков указывается в шапке..+ доп параметры и начала блоков..опять же все в шапке.
структура 64 байт блока...

Код:
40000000000000000000803F990E0000000000001AB885A570701E4052B85EBF32318D24000000000000803F00000000B3612440A4D21D403333234101000000

4000 0000 - начало блока файла.
1AB885A5 70701E40 52B85EBF - координаты x,y,z центра куба в занозе.
B3612440 A4D21D40 33332341 - размеры куба x, y, z(параметры указывются в занозе.)

соотв.для создание своей коллизии достаточно в занозе настроить..все...и перенести в хекс. либо скопировать из созданного занозой пмс. файла в ориг. (т.к. в ориг помимо блоков прописываются количество и варианты (грузы, варианты и.т.п.)

+4

23

ищутся программеры которые автоматизируют ессно процесс
перегона моделей..(аним.обьектов) в готовые пма файлики на выходе...
ессно ротации идут через кватернионы..поэтому желательно знать их ..тут вращение обьектов задается через кватернионы 4хмерная система....расчет через матрицы..идет.
сам я этим заниматься не буду так как времени нету. Если хотите чтобы была простая и удобная тулса для анимаций...подключаемся.(форматы файлов разобраны полностью)

0

24

Lexan
мне надо переписать пмд когда я в салон добавил пару обьектов естествено появились новые текстуры для них и теперь игра вылетает подскажи как переписать пмд?

0

25

Ну смотря для какой игры пмд, в ЕТС в салонах...текстур под 30 штук..так что думаю труда не составит (переправить путь просто), с добавлением все немногим сложнее. желательно иметь знания по хексу, отличать значения FLOAT, Long -хотя бы на примитиве, (в етс салонах используется 2 варианта текстур как и в хаул, алх) соотв порядок дублируется..есть у тебя 10 текстур в салоне а будет 20...(как раз варианты look1, look2)
Если же нехватает все равно текстур. придется добавлять в 2 вариантах их...и редактировать 3й блок оффсеты ссылок  на материалы.

0

26

Небольшое обновление по PMD

Код:
Обновление по структуре файла: PMD 

off 0 - Шапка файла
off 4 - Количество материалов в модели (*.pmg)
off 8 - Количество вариантов (покрасок, скинов) в модели (*.pmg)
off 12 - Количество деталей (мешев) в модели (*.pmg)
off 16 - Количество групп деталей  (отличных от base\tbase) в модели (*.pmg) 
off 20 - Количество групп деталей в данном файле 
off 24 - Количество групп деталей в данном файле  
off 28 - Неизвестно
off 32 - Размер блока материалов
off 36 - Начало блока для Варианта 1
off 40 - Конец блока для Варианта 1 и начало блока для Варианта 2
off 44 - Начало блока 2 
off 48 - Конец блока 2
off 52 - Начало подблока блока 2 
off 56 - Начало блока 3
off 60 - Конец блока 3 и начало блока материалов

off 32+ off 60 = Чексумма всего файла.

16й оффсет - имеется ввиду количество..доп.деталей отличных от base\tbase (например грузов..в трейлере)
20й и 24й оффсеты (имеется ввиду количество групп деталей ВКЛЮЧАЯ base\tbase)
КОНСТАНТА .(CEB971ED0A00)

НА САМОМ ДЕЛЕ это ГРУППЫ..в ЗАНОЗЕ, по умолчанию их 3.
это base, heel.up, heel.down., соотв при добавлении каких то групп(грузы, тюнинг грузовика) увеличивается и их количество.

=================================================================================================================

БЛОК 1 (вариант1) - перечисляется количество скинов (покрасок) 1 покраска 8 байт  например 00E7C373 15000000 (константа default) раскраски..если не более 1 скина.
БЛОК 1 (вариант2) - перечисляется количество вариантов деталей
============================================================================================
НАКОНЕЦ-то решена проблема с всеми надоевшим глюком..(не нахождение игрой в прицепах сделанных занозой варианта "empty" , "и "full")
на самом деле все оказалось до нельзя просто..заноза просто..игнорирует..данный параметр. заменяя его..параметров @дефалут@ - от грузовика

откроем любой файл..сделанный занозой (trailer.pmd)
Если в нем ..один скин..то нам нужно начало БЛОКА 1..варианта 1.
64 оффсет - 00E7C373 15000000 00E7C373 15000000 - так вот ..первая ЖИРНАЯ наша запись ето расшифровывается как skin - 1 , если же...добавим несколько покрасок допустим 3..то будет выкглядить так

00E7C373 15000000 1 скин
680D8808 00000000 2 скин
C815410D 00000000 3 скин
00E7C373 15000000 - далее...идет уже начало второго блока...(в грузовикам оно подефаулту) - в трейлерах место данной записи должна идти строчка

EMPTY - а именно A1497304 00000000 ( это все находиться путем сравнения 2 файлов..оригининала и после занозы)
FULL - 52EC1200 00000000
---строчка фулл применима для трейлеров с вариантами груза..(пустой, полный) - например BOAT, CAR, HORSE.

ПРИМЕР КОДА сравнения.

ОРИГИНАЛЬНЫЙ ФАЙЛ

040000000100000001000000030000000100000003000000030000000C000000170000004000000048000000500000009800000068000000A4000000A800000000E7C37315000000A149730400000000

ЗАНОЗНЫЙ ФАЙЛ

040000000100000001000000030000000100000003000000030000000C000000150000004000000048000000500000009800000068000000A4000000A800000000E7C3731500000000E7C37315000000

(также заноза изменили..размер мат.блока) но это не принципиально, и на работу не повлияет.

БРЕД КАКОЙТО ПОЛУЧИЛСЯ....= читайте тему по PMD  отдельно..

Отредактировано Lexan (2008-11-08 11:35:43)

+1

27

ОБНОВЛЕНИЕ по PMC

Код:
struct PMC
{
      LONG   shapka; //шапка файла
      LONG Kolvo_skinov; //Количество Скинов
      LONG Kolvo_variantov; //Количество Вариантов
      LONG  num_blocks; //количество блочков
      LONG  Unknown; //количество объектов
      LONG Na4alo_BLock1; //
      LONG Na4alo_Block2; //
      LONG Na4alo_Block3; //
      LONG Block3; //
      LONG Block3; //
      
};
Код:
struct PMCblock
{
LONG ShapkaBlocka; //Шапка
FLOAT Const0; //Неизвеcтно
FLOAT Const0; //Неизвеcтно
FLOAT Const0; //Неизвеcтно
FLOAT Const0; //Неизвеcтно
FLOAT CoordX; //X
FLOAT CoordY; //Y
FLOAT CoordZ; //Z
FLOAT RoatW; //Ротация W
FLOAT RoatX; //Ротация X
FLOAT RoatY; //Ротация Y
FLOAT RoatZ; //Ротация Z
FLOAT RazmerX; //Размер X
FLOAT RazmerY; //Размер Y
FLOAT RazmerZ; //Размер Z
FLOAT Const0; //Неизвеcтно

};

Вкратце расскажу...блок 1 и блок 2..в точности как мы разобрали в PMD , сначала идут описание скинов, потом идет описание вариантов..поэтому все варианты..грузов и скинов..копируем также как и в пмд.
Далее начиная с 4000 идет один из кубиков коллизии размером 64 байта..(просто ищем 4000 выделяем 64 байта и вот вам блок, правим как хотим)(кооординаты, ротации, размеры) если там цилиндр то он начинается..с разных цифр.
ГЛАВНОЕ..файл всегда оканчивается FFFF FFFF - перед ним идут сплошные блоки по 64 байта...

+1

28

Lexan снимаю шляпу за твое терпение разбираться с чужими (пусть и очень даже неплохими) байтовыми причудами.
Решил чуть-чуть тебе подсобить. Полмесяца уже таскаю флешку и все не когда написать :((
Погонял я чуток PMD и PMC в основном на описаниях трейлеров и вот что у меня получилось. Интерес был в том чтобы определить какой параметр заголовка влияет на размер того или иного блока.
Для PMD.

struct structPMD
{
   long ID;
   long CntMaterials;
   long CntVariants;
   long CntParts;
   long CntVariantsOfParts;
   long CntBlock;
   long CntBlock2;
   long CntUnkn;
   long SizeOfBlockMaterials;
   long BeginVariant1;
   long BeginVariant2;
   long BeginBlock2;
   long BeginBlock3;
   long BeginSubBlock2;
   long BeginBlock4;
   long BeginBlockMaterials;
   blob Variant1[8*CntVariants];
   blob Variant2[8*CntVariantsOfParts];
   blob Block2[6*CntUnkn];
   blob Block3[CntVariantsOfParts*CntUnkn];
   blob Block4[4*CntMaterials*CntVariants];
   blob BlockMaterials[SizeOfBlockMaterials];
};

Взял все твои названия, только уж, извини, отошел от русской латиницы (душа не переваривает). Твой Block3 я переименовал в Block4, тк между ним и Block2 нет промежутка небольшого, а располагается еще один блочок, который ты в заголовке определял
как смешение для КонецБлока2. Ребята из SCS далеко не плохие ребята и используют, в основном, нормальные понятия, как то указатель на начало блока, длина блока (если она не фиксирована). Поэтому, уж прости, КонецБлока2 - это не наш метод.
Меня интересовал, насколько помню, блок Variant1, там прописаны ключи (key), по которым выбирается скин (по твоему определению).
Для очень многих описаний грузов и используемых ими прицепов определены скины фиксированные, как то plain или plain2. Мне как дурню, понадобилось создать компанию (тот еще гемор по сравнению с предыдущими играми), которая использовала грузы под прицепы fuel_cistern и food_cistern, у которых при выборе груза именно в блоке Variant1 ищется по названию компании используемый скин, вариант с фиксированных скином не проходит.
Поэтому в этом блоке расположены ключи с названиями EuroGoodies, ITCC и прочие. Причем написаны ключи (названия компаний) в зашифрованном виде. С полтыка и даже с целого тыка так и не понял алгоритм кодирования. Инет не помог в поиске ответа, а тема интересная, тк SCS стала препадать именно на такой поход использования. В качестве примера: prefabs компаний с выбором скина по названию компании.
Если есть мысли по алгоритму кодировки Названий (ключей) из строковых значений (читабельных) в бинарный формат - плиз не остаться равнодушным.

Для PMC.
struct structPMC
{
long ID;
long CntMaterials;
long CntVariants;
long CntParts;
long Unknown;
long BeginBlock1;
long BeginFixBlock2;
long BeginBlock3;
long BeginBlock4;
long BeginBlok4_Repeat;
blob Block1[8*CntMaterials];
blob Block2[8*CntVariants];
blob Block3[4*CntMaterials*CntParts];
long BeginSubBlocks[CntVariants];
struct structPMC_2 SubBlock[CntVariants];
};

Структура structPMC_2 SubBlock, это, та которая содержит 40 00 00 00...  Не определяется (в смысле идентифицируется) значение 40 00... - это только размер указывает (80 байт), есть и те которые начинаются с 3С - 76 байт.

В общем виде я ее бы представил как
struct structX
{
long SizeData;
blob Data[SizeData-4];
}

struct structPMC_2
{
long XXX;
struct structX[]; // те массив структур с неопределенным количеством элементов
};

считывается в structX значение SizeData и если оно не равно -1 (0xFFFFFFFF), что далее считываются данные Data размером (SizeData-4). Для Hex Editor мне не удалось формализовать это описание (может в принципе нельзя, а может и просто не догнал)
Что означает значение XXX - не знаю.

В частном случае для просмотра трейлеров я использовал:

struct structPMC_2
{
long XXX;
long SizeData1;
blob Data1[SizeData1-4];
long SizeData2;
blob Data2[SizeData2-4];
long EndMarker;
};

Будут мысли. Делись. Удачи.

+2

29

Меня интересовал, насколько помню, блок Variant1, там прописаны ключи (key), по которым выбирается скин (по твоему определению).
Для очень многих описаний грузов и используемых ими прицепов определены скины фиксированные, как то plain или plain2. Мне как дурню, понадобилось создать компанию (тот еще гемор по сравнению с предыдущими играми), которая использовала грузы под прицепы fuel_cistern и food_cistern, у которых при выборе груза именно в блоке Variant1 ищется по названию компании используемый скин, вариант с фиксированных скином не проходит.
Поэтому в этом блоке расположены ключи с названиями EuroGoodies, ITCC и прочие. Причем написаны ключи (названия компаний) в зашифрованном виде. С полтыка и даже с целого тыка так и не понял алгоритм кодирования. Инет не помог в поиске ответа, а тема интересная, тк SCS стала препадать именно на такой поход использования. В качестве примера: prefabs компаний с выбором скина по названию компании.
Если есть мысли по алгоритму кодировки Названий (ключей) из строковых значений (читабельных) в бинарный формат - плиз не остаться равнодушным.

Всеже мне кажеться там идут не названия компаний а названия самих скинов.(легко можно проверить), перевод текст в бинарники..увы сам интересуюсь.

Да про фиксированные скины...я писал в другой темке, + интересуют варианты груза, стандартные скины использует заноза для создания траков.., впринципе выписать все варианты...грузов и скинов, можно..и какуюнибуть простенькую прожку замутить.Олег этим заниматся не хочет.
А транслитом, это для народа писалось.прост.

4000 - это помоему для описания кубов, для цилиндров и сфер, иные варианты, хотя размер одного блочка 64 байта всеравно.

КСТАТИ говоря hex workshop Мой старенький невидит BLOB, у тебя версия поновей быть может?.или другой какойто редактор.
------------------
Впринципе по пмс и пмд особой сложности нет как и с пма, все довольно просто, как ты заметил SCS каждый файл структуируют довольно удобно. Самый интерес это конечно файлы PMG, структура файла то известна, а вот внутренности каждого из 7 блоков...понять врятли удасться.

Отредактировано Lexan (2008-11-17 13:27:06)

+2

30

Разобрал таки 5 блок (Геометрия) в PMG файле..
структура напроистейшая, каждый вертекс описывается 3 координатами т.е на одну вершину приходится 12 байт.

Проверить это очень легко. (в занозе выделяем) все вершины смотрит..значение (брал anim.pmg от вольвы из ЕТС) - 4996
умножаем на 2..так как вершины..в занозе. получаем 9992  , теперь 9992 умножаем на 12.. и что мы видим 119904  - размер блока геометрии.

Так что можно пытаться уже подменять геометрию,  осталось разрулить..6 и 7 блоки(фейсы и нормали)

Блок 6. Имеет 2 подблока описание вершин и фейсов.
Первый равен количеству вершин в детали умножит на 8, второй равен количество вершин в детали умножить на 4.
ПРИМЕР. 19416 размер блока 6. 1618 вершин в детале., таким образом мы получаем 1618*8+1618*4=19416
Кстати в описании фейсов, как раз сидит свойства прозрачных..обьектов..блестеть.

Отредактировано Lexan (2008-11-19 16:39:48)

0