delphi Код:
//Считываем параметры одной вещи
procedure SetItem(var PckPos:integer;ItemIndex:byte);
begin Inventory[ItemIndex].ItemType1:=ps.ReadHEx(ppck^,PckPos); //1
inc(PckPos,2);
Inventory[ItemIndex].ObjectID:=ps.ReadDEx(ppck^,PckPos); //2
inc(PckPos,4);
Inventory[ItemIndex].ItemID:=ps.ReadDEx(ppck^,PckPos); //3
inc(PckPos,8);
Inventory[ItemIndex].ItemCount:=ps.ReadDEx(ppck^,PckPos); //4
inc(PckPos,4);
Inventory[ItemIndex].ItemType2:=ps.ReadHEx(ppck^,PckPos); //5
inc(PckPos,2);
Inventory[ItemIndex].CustType1:=ps.ReadHEx(ppck^,PckPos); //6
inc(PckPos,2);
Inventory[ItemIndex].IsEquipped:=ps.ReadHEx(ppck^,PckPos); //7
inc(PckPos,2);
Inventory[ItemIndex].BodyPart:=ps.ReadDEx(ppck^,PckPos); //8
inc(PckPos,4);
Inventory[ItemIndex].EnchantLevel:=ps.ReadHEx(ppck^,PckPos); //9
inc(PckPos,2);
Inventory[ItemIndex].CustType2:=ps.ReadHEx(ppck^,PckPos); //10
inc(PckPos,2);
Inventory[ItemIndex].AugID:=ps.ReadDEx(ppck^,PckPos); //11
inc(PckPos,4);
Inventory[ItemIndex].ShadowTime:=ps.ReadDEx(ppck^,PckPos); //12
inc(PckPos,40);
end;
//Для пакета Inventory Init
procedure ExtractInvInfo;
var c1,c2:integer;
begin SetLength(Inventory,ps.ReadHEx(ppck^,5)); //количество вещей в инвентаре
if Length(Inventory)<>0 then
c2:=7;
for c1:=0 to Length(Inventory)-1 do //пробегаем по всем предметам
begin SetItem(c2,c1); //считываем параметры одного предмета
end;
end;
это для пакета InventoryInit.