Показать сообщение отдельно
Старый 21.03.2011, 13:47   #1
НейроН
Читер со стажем
Аватар для НейроН
OFFLINE
Регистрация: 13.08.2010
Сообщений: 419
Благодарностей:
105 всего
Мнения: + 1660
Репутация: 316

[Гайд]Создание структур из хидер файла


Итак, начнём:

PHP код:
int i32
unsignet int 
u32
float 
float
double 
double
char 
i8
unsigned char 
u8
short 
i16
unsigned short 
u16
char 
***91;***93;(массив чар) - cstr обязательный параметр len=x(где х количество байт
Открываем наш хидер, ищем нужную нам структуру по названию (я возьму для примера ItemLooting)
struct _ItemLooting_fld
Перед нами структура такого вида:
PHP код:
struct _ItemLooting_fld
{
  
_base_fld baseclass_0;
  
int m_nLootRate;
  
int m_nLootTime;
  
int m_nOperationCount;
  
int m_nLootListCount;
  
char m_itmLootCodeKey***91;200***93;***91;8***93;;
}; 
Переводим:
Для начала маска структуры:
PHP код:
***91;filemask="ItemLooting.dat"***93;


struct ItemLootingFile
{
u32 nBlocks;
u32 nColumns;
u32 nSize;
child ItemLootingBlock ***91;count=nBlocks***93;;

Затем переводим каждую строчку
_base_fld baseclass_0;
Ищем в хидере структуру struct _base_fld
Переводим:
PHP код:
struct ItemLootingBlock ***91;preload=1***93;
{
u32 Index;
cstr ***91;len=64***93; Code
У нас получилось:
PHP код:
***91;filemask="ItemLooting.dat"***93;


struct ItemLootingFile
{
u32 nBlocks;
u32 nColumns;
u32 nSize;
child ItemLootingBlock ***91;count=nBlocks***93;;
struct ItemLootingBlock ***91;preload=1***93;
{
u32 Index;
cstr ***91;len=64***93; Code
Переводим далее:
PHP код:
***91;filemask="ItemLooting.dat"***93;


struct ItemLootingFile
{
u32 nBlocks;
u32 nColumns;
u32 nSize;
child ItemLootingBlock ***91;count=nBlocks***93;;
struct ItemLootingBlock ***91;preload=1***93;
{
u32 Index;
cstr ***91;len=64***93; Code;
i32 LootRate;
i32 LootTime;
i32 OperationCount;
i32 LootListCount
Разбор последней строчки:
PHP код:
char m_itmLootCodeKey***91;200***93;***91;8***93;; 
char = cstr + len=8(число из квадратных скобок - кол-во байт, 200 - сколько раз должна повторяться ета строчка, у нас получиться:
PHP код:
***91;filemask="ItemLooting.dat"***93;


struct ItemLootingFile
{
u32 nBlocks;
u32 nColumns;
u32 nSize;
child ItemLootingBlock ***91;count=nBlocks***93;;
struct ItemLootingBlock ***91;preload=1***93;
{
u32 Index;
cstr ***91;len=64***93; Code;
i32 LootRate;
i32 LootTime;
i32 OperationCount;
i32 LootListCount;
repeat 200
{
cstr ***91;len=8***93; LootCodeKey;
}

Вот и всё! Удачи!

Дополнил [scaR]

Последний раз редактировалось НейроН; 21.03.2011 в 13:53.
 
Ответить с цитированием
Сказали спасибо:
FG KOSH (04.02.2013), Casillas (09.01.2013), Lonee (01.12.2011), darkpdx (23.09.2011), tibet (13.05.2011), Недоступно (21.03.2011)