delphi Код:
//=============================
// добавляем в базу ЛВЛ заточки
procedure addenchantitemID;
begin
for i:=1 to max do
if (BaseItems[i,3] = itemID) then begin
enchlvl:=BaseItems[i,11];
flag:=false;
for ii:=1 to max do
if (Baselvl[ii] = enchlvl) then begin // текущий уже есть в массиве,
flag := true;
BREAK; { прекращаем цикл }
end;
if (flag = false) then begin
for ii:=1 to max do
if (Baselvl[ii]=-1) then begin // добавим в массив,
Baselvl[ii]:=enchlvl;
index :=ii;
BREAK; { прекращаем цикл }
end;
end;
end;
end;
//==========================
procedure ChooseInventory;
var
OID, lvl:integer;
begin
if (itemID>0) and start then begin
sumitemID:=0;
sumitemID:=Getsumitem(itemID,3,5); // считаем предметы для заточки
SendMsg2(''+IntToStr(sumitem)+' Предметов для заточки с ID : '+IntToStr(itemID)+' = '+IntToStr(sumitemID)+' ШТ');
objectOID:=0;
SendMsg2( '*******************************************' );
SendMsg2(' ---- П О И С К П Р Е Д М Е Т А ----' );
if (sumitemID > sumitem) then objectOID:=GetObjectID(itemID);//находим по ItemID предмет с ObjectID
if (objectOID = 0) then begin
autoMsg:=true;
stopEnchantItem;// остановка скрипта
SendMsg2('Больше предметов c ID : '+IntToStr(itemID)+' для заточки НЕТ ! ! ! ');
SendMsg2('----' );
lvl:=0;
for i:=1 to max do
if (BaseItems[i,3] = itemID) then begin
OID:=BaseItems[i,2];
lvl:=BaseItems[i,11];
SendMsg2(' . . П р е д м е т . .' );
SendMsg2(' ID: '+IntToStr(itemID)+' ObjectID: '+IntToStr(OID)+' заточен до: '+IntToStr(lvl)+' ');
SendMsg2(' .................' );
end;
end;
end;
end;
//=========================
//находим enchantID предмета по ItemID для заточки
function GetObjectID(itemID:integer) : integer;
var
ID,i:integer;
begin
enchantID:= 0;
ItemEnch:=0;
Result:= 0;
if (itemID > 0) then begin
SendMsg2 (' ищем ObjectID предмета с ID : ' +IntToStr(itemID)+' ');
SendMsg2('------------------------------' );
for i:=1 to max do
if (BaseItems[i,3] = itemID) and (BaseItems[i,11] = minlvl) and (BaseItems[i,11] < maxlvl) then begin
enchantID:=BaseItems[i,2];
Result:=BaseItems[i,2];
ItemEnch:=BaseItems[i,11];
SendMsg2(' ..... Найден Предмет для Заточки ..... ');
SendMsg2(' ID : '+IntToStr(itemID)+' и ObjectID : '+IntToStr(enchantID)+' заточен до : '+IntToStr(ItemEnch)+'');
SendMsg2('------------------------------' );
if start and (enchantID>0) then Timer02.enabled:=true;
Break; // прерываем дальнейший перебор массива.
end;
end;
end;
//==========================
procedure stopselectskrol;// отмена выбора скролл
begin
buf:=hstr('D04E00');
SendToServerEx(myname);
end;
//===================================
procedure OnTimer01(Sender: TObject);
begin
buf:=#$19;
WriteD(skrolObject);
WriteD(0);
SendToServerEx(myname);
Timer01.enabled:=false;
end;
//--------------------------
procedure OnTimer02(Sender: TObject);
begin
buf:=hstr('D04C00');
WriteD(enchantID);
SendToServerEx(myname);
Timer02.enabled:=false;
// Timer03.enabled:=true;
end;
procedure OnTimer03(Sender: TObject);
begin
buf:=#$5F;
WriteD(enchantID);
WriteD(0);
SendToServerEx(myname);
Timer03.enabled:=false;
end;