Показать сообщение отдельно
Старый 08.08.2010, 17:39   #405
Местный
 
Регистрация: 05.11.2008
Сообщений: 168
Сказал Спасибо: 35
Имеет 139 спасибок в 66 сообщенях
Fer123 пока неопределено
По умолчанию

Я так посмотрел в скрипте не используются 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;
Просто замени имеющиеся у тебя в скрипте процедуры на эти.

Последний раз редактировалось Fer123, 08.08.2010 в 17:48.
Fer123 вне форума   Ответить с цитированием
За это сообщение Fer123 нажился спасибкой от: