delphi Код:
//..............................................................................
procedure ItemList;
var
i, j, k: integer;
count,x:integer;
begin
deleteBase;
count:=0;
x:=0;
y:=0;
j:=4;
ListSize:=ReadH(j);
count:=round((Length(pck)-5) / ListSize);
for i:=1 to ListSize do
if (i<=ListSize) then begin
BaseItems[i,1]:=ReadH(j);
BaseItems[i,2]:=ReadD(j);//ObjectID
BaseItems[i,3]:=ReadD(j);//ItemID
BaseItems[i,4]:=ReadD(j);//LocationSlot
BaseItems[i,5]:=ReadD(j);// Amount:
BaseItems[i,6]:=ReadD(j);// Amount:
BaseItems[i,7]:=ReadH(j);//ItemType2
BaseItems[i,8]:=ReadH(j);// CustomType1
BaseItems[i,9]:=ReadH(j);//isEquipped:
BaseItems[i,10]:=ReadD(j);//BodyPart
BaseItems[i,11]:=ReadH(j);//EnchantLevel
inc(x);
y:=count*x-(j-6);
inc(j,y);
end else for k:=1 to 11 do BaseItems[i,k]:=0;
if start then addenchantitemID;
skrolObject:=0;
sumskrol:=0;
sumskroll:=0;
minlvl:=Baselvl[1];
for ii:=2 to index do
if (Baselvl[ii] < minlvl) then
minlvl:=Baselvl[ii];// мин заточка
//------------------------------
if start and selectskrol and (selectblessedskrol=false) then enchantSkroll;
//------------------------------
if start and selectblessedskrol and (selectskrol=false) then enchantblessedskroll;
//------------------------------
if start and selectskrol and selectblessedskrol then enchantautoSelectSkroll;
end;
//=============================
procedure enchantSkroll;
begin
skrolObject:=skrolOID;
sumskrol:=Getitem(skrolID,3,5);//считаем SKROL
SendMsg2 (' SKROLL ... c ID : '+IntToStr(skrolID)+' = '+IntToStr(sumskrol)+' ШТ ');
if (sumskrol>0) then Timer01.enabled:=true;// вкл таймер выбора свитка
if (sumskrol=0) then begin
autoMsg:=true;
stopEnchantItem;
SendMsg2 ('........ НЕДОСТАТОЧНО SKROLL........ ');
end;
end;
//=============================
procedure enchantblessedskroll;
begin
skrolObject:=blessedskrolOID;
sumskroll:=Getitem(blessedskrolID,3,5);//считаем blessedSKROL
SendMsg2 (' blessed. SKROLL ... c ID : '+IntToStr(blessedskrolID)+' = '+IntToStr(sumskroll)+' ШТ ');
if (sumskroll>0) then Timer01.enabled:=true;// вкл таймер выбора свитка
if (sumskroll=0) then begin
autoMsg:=true;
stopEnchantItem;
SendMsg2 ('........ НЕДОСТАТОЧНО blessed SKROLL........ ');
end;
end;
//=============================
procedure enchantautoSelectSkroll;
begin
SendMsg2(' .........' );
if (minlvl<xxx) then begin
skrolObject:=skrolOID;
sumskrol:=Getitem(skrolID,3,5);//считаем SKROL
SendMsg2 (' ___ БЕЗОПАСНО ___ ');
SendMsg2 (' применяем : ...Просто .. skroll. ');
if (sumskrol>0) then Timer01.enabled:=true;// вкл таймер выбора свитка
SendMsg2 (' SKROLL .. c ID : '+IntToStr(skrolID)+' : = '+IntToStr(sumskrol)+' ШТ ');
if (sumskrol=0) then begin
autoMsg:=true;
stopEnchantItem;
SendMsg2 ('........ НЕДОСТАТОЧНО SKROLL........ ');
end;
end;
if (minlvl>=xxx) then begin
skrolObject:=blessedskrolOID;
sumskroll:=Getitem(blessedskrolID,3,5);//считаем blessedSKROL
SendMsg2 (' ___ О П А С Н О С Т Ь ___ ');
SendMsg2 (' применяем : ...blessed. ... skroll... ');
if (sumskroll>0) then Timer01.enabled:=true;// вкл таймер выбора свитка
SendMsg2 (' blessed. SKROLL .. c ID : '+IntToStr(blessedskrolID)+' = '+IntToStr(sumskroll)+' ШТ ');
if (sumskroll=0) then begin
autoMsg:=true;
stopEnchantItem;
SendMsg2 ('........ НЕДОСТАТОЧНО blessedSKROLL........ ');
end;
end;
end;
//=============================
procedure EnchantResult;
begin
index :=0;
for ii:=1 to max do
Baselvl[ii]:=-1;
end;
//=============================
procedure deleteBase;
var
i,j,k:integer;
begin
for i:=1 to max do
if (BaseItems[i,2] > 0) then begin
BaseItems[i,1]:=0;
BaseItems[i,2]:=0; //ObjectID
BaseItems[i,3]:=0; //ItemID
BaseItems[i,4]:=0;
BaseItems[i,5]:=0;
BaseItems[i,6]:=0;
BaseItems[i,7]:=0;
BaseItems[i,8]:=0;
BaseItems[i,9]:=0;
BaseItems[i,10]:=0;
BaseItems[i,11]:=0;
end;
end;
//===========================
function Getitem(Obj,up,down:integer): integer;
var
i: integer;
begin
Result:= 0;
for i:=1 to max do
if (BaseItems[i,up]=Obj) then begin
Result:=BaseItems[i,down];
end;
end;
//===========================
function Getsumitem(Obj,up,down:integer): integer;
var
i: integer;
begin
Result:= 0;
for i:=1 to max do
if (BaseItems[i,up]=Obj) then begin
Result:=Result+BaseItems[i,down];
end;
end;