Pilgrim, Этот сервер вряд ли freya, по пакетам больше на эпилог похоже. Там админы покоцали структуру пакетов itemlist & inventoryupdate.
Маска для itemlist : dddqhhhdh
0 - ItemOID
1 - ItemID
3 - Amount
8 - EnchantLevel
Маска для InventoryUpdate : hdddqhhhdh
0 - UpdateType
1 - ItemOID
2 - ItemID
4 - Amount
9 - EnchantLevel
Теперь вставляем их в процедуры создания и обновления инвентаря, которые вылаживал здесь алекстим:
Оффтоп
DELPHI Код:
Procedure CreateItemBase; //создание базы предметов
var i,j,count:integer;
begin
count:=round((length(pck)-5)/ReadH(4));
StringList.Clear;
for j:=1 to 4 do for i:=1 to Max do ItemBase[j,i]:=0;
for i:=0 to ReadH(4)-1 do
begin
readmask('dddqhhhdh',6+i*count,values);
ItemBase[1,i+1]:=values[0];
ItemBase[2,i+1]:=values[1];
ItemBase[3,i+1]:=values[3];
ItemBase[4,i+1]:=values[8];
StringList.Add(inttostr(itembase[4,i+1])+'*'+ItemsName.Values[IntToStr(ItemBase[2,i+1])]); //записываем название вещей из инвентаря
end;
ComboBoxItem.Items.Clear;
ComboBoxItem.Items.Assign(StringList);
ComboBoxItem.ItemIndex:=0;
end;
Procedure UpdateItemBase;
var i,j,obj,count:integer;
begin
count:=round((length(pck)-3)/ReadH(2));
for i:=0 to ReadH(2)-1 do
begin
readmask('hdddqhhhdh',4+i*count,values);
case values[0] of
1: obj:=0;
2: obj:=values[1];
3: begin
for i:=1 to Max do
if ItemBase[1,i]=values[1] then
begin
for j:=1 to 4 do ItemBase[j,i]:=0;
break;
end;
continue;
end;
end;
for i:=1 to Max do
if ItemBase[1,i]=obj then
begin
ItemBase[1,i]:=values[1];
ItemBase[2,i]:=values[2];
ItemBase[3,i]:=values[4];
ItemBase[4,i]:=values[9];
break;
end;
end;
end;
Вставляем заполнение комбобоксов. И все теперь можно вставлять это в свой скрипт...