Я так посмотрел в скрипте не используются LocationSlot, ItemType1,2 итд.
Т.к я в пакете разобрал только oid, itemid, amount и enchlvl то чтоб не менять весь скрипт просто пропустим все остальное. Получается:
DELPHI Код:
Procedure ItemList; //создание базы предметов
var i,j,count:integer;
values : array[0..8] of variant;
begin
count:=round((length(pck)-5)/ReadH(4));
StringList.Clear;
for j:=1 to 12 do for i:=1 to maxitems do BaseItems[i,j]:=0;
for i:=0 to ReadH(4)-1 do
begin
readmask('dddqhhhdh',6+i*count,values);
BaseItems[i+1,2]:=values[0];
BaseItems[i+1,3]:=values[1];
BaseItems[i+1,5]:=values[3];
BaseItems[i+1,10]:=values[8];
StringList.Add(ItemsName.Values[IntToStr(BaseItems[i+1,3])]); //записываем название вещей из инвентаря
end;
if not CheckBoxItem.Checked then begin //наполняем комбобокс
with ComboBoxItem do
begin
Items.Clear;
Items.Assign(StringList);
ItemIndex:=0;
end;
end;
if not CheckBoxScroll.Checked then begin //наполняем комбобокс
with ComboBoxScroll do
begin
Items.Clear;
Items.Assign(StringList);
ItemIndex:=0;
end;
end;
end;
А процедура обновления инвентаря:
DELPHI Код:
Procedure InventoryUpdate;
var i,j,obj,count:integer;
values : array[0..9] of variant;
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 maxitems do
if BaseItems[i,2]=values[1] then
begin
for j:=1 to 12 do BaseItems[i,j]:=0;
break;
end;
continue;
end;
end;
for i:=1 to maxitems do
if BaseItems[i,2]=obj then
begin
BaseItems[i,2]:=values[1];
BaseItems[i,3]:=values[2];
BaseItems[i,5]:=values[4];
BaseItems[i,10]:=values[9];
break;
end;
end;
end;
Просто замени имеющиеся у тебя в скрипте процедуры на эти.