Скрипт на локпики ,он работает но трудность в том что если несколько кучек аирона в сундуке скрипт сбиваеться помогиет плз..
*****
Program Tinker_Lockpick; 
const 
Sunduk_With_Iron_and_Tools=$40316151; //Туда же складываем и локпики
Tools=$1EBC; 
Ingot=$1BEF; 
Lockpick=$14FB; 
var 
k, l : integer; 
TimeStart : TDateTime; 
procedure Check_Lockpick; 
begin 
FindType(Lockpick,Backpack); 
if FindCount>0 then 
begin 
while FindCount <> 0 do 
begin 
l:=l+1; 
MoveItem(FindItem,1,Sunduk_With_Iron_and_Tools,0,0,0); 
wait(500); 
FindType(Lockpick,Backpack); 
end; 
end; 
end; 
procedure Check_World_Save; 
begin 
if InJournal('saving')<>-1 then 
begin 
ClearJournal; 
k:=0; 
repeat 
wait(10000); 
k:=k+1; 
AddToSystemJournal('World is saving more than '+IntToStr(k*10)+' seconds.'); 
until (InJournal('data')<>-1) or (k>30); 
end 
end; 
procedure Check_Connect; 
begin 
if not Connected then 
while not Connected do 
begin 
Connect; 
wait(1000); 
end; 
end; 
procedure Check_Iron; 
begin 
FindTypeEx(Ingot,$0000,Backpack,False); 
if (FindCount=0) OR (GetQuantity(FindItem)<5) then 
begin 
AddToSystemJournal('Добираем инги.'); 
UseObject(Sunduk_With_Iron_and_Tools); 
wait(1000); 
FindTypeEx(Ingot,$0000,Sunduk_With_Iron_and_Tools,False); 
if (FindCount>0) and (GetQuantity(FindItem)>100) then 
begin 
MoveItem(FindItem,100,Backpack,0,0,0); 
wait(1000); 
AddToSystemJournal('Добрали 100 iron ingots. На данный момент имеем '+IntToStr(Count(Ingot))+' штук. Осталось ещё '+IntToStr(CountEx(Ingot,$0000,Sunduk_With_Iron_and_Tools))+' iron ingots. l='+IntToStr(l)+'; Count='+IntToStr(Count(Lockpick))+';'); 
end 
else 
AddToSystemJournal('Ошибка во время добора Iron Ignots.'); 
exit; 
end 
FindType(Ingot,Ground); 
if FindCount>0 then 
begin 
MoveItem(FindItem,0,Sunduk_With_Iron_and_Tools,0,0,0); 
wait(500); 
end 
end; 
Begin 
UseObject(Sunduk_With_Iron_and_Tools); 
wait(1000); 
ClearJournal; 
CancelMenu; 
AutoMenu( 'Tinkering' , 'Tools' ); 
AutoMenu( 'Tools' , 'lockpick' ); 
while not Dead do 
begin 
Check_Iron; 
k:=0; 
TimeStart:=Now; 
UseObject(FindType(Tools,Backpack)); 
repeat 
wait(100); 
k := k + 1; 
Check_World_Save; 
until (InJournalBetweenTimes('You put|failed', TimeStart, Now)<>-1) or (k > 300); 
wait(100); 
if InJournal('put')<>-1 then 
Check_Lockpick; 
ClearJournal; 
end; 
End.
*******
			
			
									
									
						Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7 
	Помогите со скриптом плзззз под дрв
Вариант 1: Ищем только стопки ингов количество в которых > MinIngotCount 
Вариант 2 : Прежде чем начать добор, собираем разрозненные пачки в 1.
			
			
									
									
						Code: Select all
procedure Check_Iron; 
//=================
const
MinIngotCount=5;
//сюда впиши сколько в кучке должно быть ингов чтоб скрипт обратил на нее внимание
//=================
begin 
FindTypeEx(Ingot,$0000,Backpack,False); 
if (FindCount=0) OR (GetQuantity(FindItem)<5) then 
begin 
AddToSystemJournal('Добираем инги.'); 
UseObject(Sunduk_With_Iron_and_Tools); 
wait(1000); 
FindTypeEx(Ingot,$0000,Sunduk_With_Iron_and_Tools,False);
//==============
while FindQuantity < MinIngotCount do begin
   Ignore(finditem);
   FindTypeEx(Ingot,$0000,Sunduk_With_Iron_and_Tools,False);
end;
IgnoreReset;
if (FindCount = 0)  then 
begin
   AddToSystemJournal('Кончились инги в сундуке.'); 
   exit; 
end;
//============== 
MoveItem(FindItem,100,Backpack,0,0,0); 
wait(1000); 
AddToSystemJournal('Добрали 100 iron ingots. На данный момент имеем '+IntToStr(Count(Ingot))+' штук. Осталось ещё '+IntToStr(CountEx(Ingot,$0000,Sunduk_With_Iron_and_Tools))+' iron ingots. l='+IntToStr(l)+'; Count='+IntToStr(Count(Lockpick))+';'); 
FindType(Ingot,Ground); 
if FindCount>0 then 
begin 
MoveItem(FindItem,0,Sunduk_With_Iron_and_Tools,0,0,0); 
wait(500); 
end 
end; Code: Select all
procedure Check_Iron; 
//=================
const
MinIngotCount=5;
//сюда впиши сколько в сундуке должно быть ингов прежде чем начнем кричать "Больше нет"
var
CurrentStock:Cardinal;
//=================
begin 
FindTypeEx(Ingot,$0000,Backpack,False); 
if (FindCount=0) OR (GetQuantity(FindItem)<5) then 
begin 
AddToSystemJournal('Добираем инги.'); 
UseObject(Sunduk_With_Iron_and_Tools); 
wait(1000); 
FindTypeEx(Ingot,$0000,Sunduk_With_Iron_and_Tools,False);
if (FindCount=0)  then 
begin
   AddToSystemJournal('Кончились инги в сундуке.'); 
   exit; 
end; 
//==============
while FindCount > 1 then begin
  CurrentStock:=finditem;
  ignore(CurrentStock);
  FindTypeEx(Ingot,$0000,Sunduk_With_Iron_and_Tools,False);
  MoveItem(FindItem,FindQuantity,CurrentStock,0,0,0);
  wait(1000);//<--------??????а вдруг лаг?
  Check_World_Save;
  IgnoreReset;
  FindTypeEx(Ingot,$0000,Sunduk_With_Iron_and_Tools,False);
end;//while 
if FindQuantity < MinIngotCount then begin
   AddToSystemJournal('Кончились инги в сундуке.'); 
   exit; 
end; 
//==============
MoveItem(FindItem,100,Backpack,0,0,0); 
wait(1000); 
AddToSystemJournal('Добрали 100 iron ingots. На данный момент имеем '+IntToStr(Count(Ingot))+' штук. Осталось ещё '+IntToStr(CountEx(Ingot,$0000,Sunduk_With_Iron_and_Tools))+' iron ingots. l='+IntToStr(l)+'; Count='+IntToStr(Count(Lockpick))+';'); 
FindType(Ingot,Ground); 
if FindCount>0 then 
begin 
MoveItem(FindItem,0,Sunduk_With_Iron_and_Tools,0,0,0); 
wait(500); 
end 
end; 