Да может я гдето накосячил в программе но в целом когда скилл доходит до нужного значения он упорно продолжает сливать ресы и не переходит к качу другого навыка.
Code: Select all
Program New;
var
rubanoktime:TDateTime;
procedure tailor_drop();
begin
 if (findtype($0E34,backpack)<>0) then
   repeat
     moveitem(findtype($0E34,backpack),0,$5AD46CF1,0,0,0);
     wait(1500);
   until(findtype($0E34,backpack)=0);
end;
procedure izdelie_drop_tinker();
begin
   if(findtype($0FA6,backpack)<>0)then       //шахматы
      repeat
        moveitem(finditem,0,ground,2,0,0);
        wait(1500);
      until(findtype($0FA6,backpack)=0);
end;
procedure izdelie_drop_carp();
begin
  if(findtype($27AE,backpack)<>0)then       //нунчаки
    repeat
       moveitem(finditem,0,ground,2,0,0);
       wait(1000);
    until(findtype($27AE,backpack)=0);
end;
procedure tinker();
begin
 repeat
  rubanoktime:=now;
  useobject(findtype($1EB9,backpack));
  wait(2000);
  if((InJournalBetweenTimes('System: Этот предмет поломан, отнесите его мастеру',rubanoktime,Now)<>-1))then
    begin
    drophere(finditem);
    wait(3000);
    ClearJournal;
    if((count($1EB9)<1))then
     exit;
    useobject(findtype($1EB9,backpack));
    wait(1000);
    end;
 waitgump('4006');
 waitfortarget(5000);
 targettoobject(findtypeex($1BDD,$0000 ,ground,false));  
 wait(1000);
   repeat
    waitgump('100');
    wait(500);
    izdelie_drop_tinker();
    wait(1000);
    if(InJournalBetweenTimes('недостаточно',rubanoktime,Now)<>-1)then
     uosay('Дерево кончилось!!!');
   until((InJournalBetweenTimes('Вы закончили',rubanoktime,Now)<>-1)or
   (InJournalBetweenTimes('поломан',rubanoktime,Now)<>-1)or
   (InJournalBetweenTimes('недостаточно',rubanoktime,Now)<>-1)or
   (InJournalBetweenTimes('Какой',rubanoktime,Now)<>-1));
   ClearJournal;
 until(dead or(Getskillvalue('Tinkering')=103.8));
end;
procedure carpentry();
begin
repeat
rubanoktime:=now;
useobject(findtype($1032,backpack));
wait(2000);
if ((InJournalBetweenTimes('System: Этот предмет поломан, отнесите его мастеру',rubanoktime,Now)<>-1))then
 begin
 drophere(finditem);
 wait(3000);
 ClearJournal;
  if((count($1032)<1))then
  exit;
 useobject(findtype($1032,backpack));
 end;
waitgump('10158');
waitfortarget(5000);
targettoobject(findtypeex($1BDD,$01BF,ground,false));  
wait(1000);
repeat
waitgump('100');
wait(500);
izdelie_drop_carp();
wait(1000);
if(InJournalBetweenTimes('недостаточно',rubanoktime,Now)<>-1)then
uosay('Дерево кончилось!!!');
until((InJournalBetweenTimes('Вы закончили',rubanoktime,Now)<>-1)or
(InJournalBetweenTimes('поломан',rubanoktime,Now)<>-1)or
(InJournalBetweenTimes('недостаточно',rubanoktime,Now)<>-1)or
(InJournalBetweenTimes('Какой',rubanoktime,Now)<>-1));
until(dead or (Getskillvalue('Carpentry')=103.5));
end;
procedure tailor();
begin
repeat
rubanoktime:=now;
useobject(findtype($0F9D,backpack));
wait(1000);
 if ((InJournalBetweenTimes('System: Этот предмет поломан, отнесите его мастеру',rubanoktime,Now)<>-1))then
 begin
 drophere(finditem);
 wait(3000);
 ClearJournal;
  if((count($0F9D)<1))then
  exit;
 useobject(findtype($0F9D,backpack));
 end;
waitgump('3636');
waitfortarget(5000);
if (findtype($1766,$5AD46CF1)<>0) then
targettoobject(findtype($1766,$5AD46CF1));
if (findtype($1766,$5AD46CF1)=0) then
uosay('Ткань кончилась положите еще срочно!!!');
wait(1000);
repeat
waitgump('100');
wait(500);
tailor_drop();
if(InJournalBetweenTimes('недостаточно',rubanoktime,Now)<>-1)then
uosay('Ткань кончилась положите еще срочно!!!');
until((InJournalBetweenTimes('Вы закончили',rubanoktime,Now)<>-1)or
(InJournalBetweenTimes('поломан',rubanoktime,Now)<>-1)or
(InJournalBetweenTimes('недостаточно',rubanoktime,Now)<>-1)or
(InJournalBetweenTimes('Какой',rubanoktime,Now)<>-1));
wait(1000);
until(dead or(Getskillvalue('Tailoring')=112.1));
end;
begin
tailor();
carpentry();
tinker();
end.



