Нашел у вас скрипт .. но он не работает,помогите с синтаксисом ..
(Intelude)
delphi Код:
const
Name='mind';
max=79; //Слотов в инвентаре
var
ItemBase: array[1..4,1..max] of integer;
ready:boolean;
procedure Init;
begin
ready:=false;
buf:=#$0F;
SendToServerEx(Name);
end;
//***************************************************************
procedure CreateItemBase;
var
i, j, ListCount: integer;
begin
for i:=1 to max do begin
//очищаем масив
ItemBase[1,i]:=0; //OID
ItemBase[2,i]:=0; //ID
ItemBase[3,i]:=0; //kol-vo
ItemBase[4,i]:=0; //lvl
end;
j:=4;
ListCount:=ReadH(j);
j:=8;
for i:=1 to ListCount do begin
itemBase[1,i]:=ReadD(j); //OID
itemBase[2,i]:=ReadD(j); //ItemID
itemBase[3,i]:=ReadD(j); //кол-во
inc(j,10);
itemBase[4,i]:=ReadH(j);//EnchantLevel
inc(j,12);
end;
end;
//......................................
//******************************************************************************
procedure InventoryUpdate; //пакет 27, обновляет базу ObjectID по ItemID
var
i, ii, j, OID, ID, Count, ListCount, UpdType, lvl: integer;
add : boolean;
begin
add:=false;
ListCount:=ReadH(2);
j:=4;
for ii:=1 to ListCount do begin
add:=false; //Ели додумался изза чего не добавляет сразу несколько предметов в базу
UpdType:=ReadH(j);
ReadH(j); //ItemType1
OID:=ReadD(j); //ObjectID
ID:=ReadD(j); //ItemID
Count:=ReadD(j); //кол-во
inc(j,10);
lvl:=ReadH(j);
case UpdType of
1: begin
for i:=1 to max do begin
if (ItemBase[1,i]=0) and (add=false) then begin
ItemBase[1,i]:=OID;
ItemBase[2,i]:=ID;
ItemBase[3,i]:=Count;
ItemBase[4,i]:=lvl;
add:=true;
end;
end;
end;
2: begin
for i:=1 to max do begin
if ItemBase[1,i]=OID then begin
ItemBase[3,i]:=Count;
ItemBase[4,i]:=lvl;
if OID=arItemOID[arNum] then CurEnchLvl:=lvl;
end;
end;
end;
3: begin
for i:=1 to max do begin
if ItemBase[1,i]=OID then begin
ItemBase[1,i]:=0;
ItemBase[2,i]:=0;
ItemBase[3,i]:=0;
ItemBase[4,i]:=0;
end;
end;
end;
end;
inc(j,10);
end;
end;
//......................................
function SumItem(Item: integer):integer;
var
sum, i : integer;
begin
result:=0;
for i:=1 to max do begin
if (ItemBase[2,i]=item) then begin
result:=result+ItemBase[3,i];
end;
end;
end;
BEGIN
//--- INVENTORY BEGIN ---//
if FromServer and (ConnectName=Name) then case pck[1] of
#$1B: begin
CreateItemBase;
ready:=true;
end;
#$27: begin
InventoryUpdate;
ready:=true;
end;
end;
//--- INVENTORY END ---//
if (SumItem(6577)<=5) and (ready=true) then begin
buf:=HStr('мой пакет');
SendToServerEx(Name);
ready:=false;
end;
END.