Code: Select all
// Magery script fo DRW. crafted by Sevenamber 
Program Magery; 
{$Include 'all.inc'}  
var 
 mtime : TDateTime; 
 tmana: integer; 
 i:integer; 
const 
 minLimOfMana=7;// минимальный уровень маны, после которого начинаем медитировать 
 CastSpell='Poison'; 
 eat=$09D0;// тип еды 
 NS =$0F88;// тип NS 
 mishenb=$0EFA;// на что будем пускать
  
procedure medium;// медитируем 
begin 
 if connected then 
  repeat 
   mtime:=Now; 
   UseSkill('Meditation'); 
   repeat 
     checksave; 
   until ((InJournalBetweenTimes('concentration|peace', mtime, Now)<>-1) or (Mana=Int) or (dead) or (not connected)); 
  until ((InJournalBetweenTimes('You are at peace', mtime, Now)<>-1) or dead or (not connected)); 
 UseObject(FindType(eat,Backpack)); 
end; 
procedure Wait_Target(time_ms:Cardinal); 
var 
 TempTime,SumTime:Cardinal; 
begin 
 SumTime:=0; 
 repeat 
  checksave; 
  TempTime:=Timer; 
  SumTime:=SumTime+(Timer-TempTime); 
 until ((targetpresent) or (dead) or (not connected) or (SumTime>time_ms)); 
end; 
begin 
 clearjournal; 
 SetARStatus(true); 
 while not Dead do 
  begin 
   while not connected do wait(1000);    
   checksave; 
   tmana:=Mana; 
   if Mana > minLimOfMana then 
    begin 
    if TargetPresent then CancelTarget; 
    // подсчёт NS
    i := Count(NS); 
    addtosystemjournal('осталось: ' + inttostr(i) +' NS'); 
    // 
    cast(CastSpell); 
    Wait_Target(10000); 
    	WaitTargetType(mishenb); 
    repeat 
     checksave; 
     until ((tmana>Mana) or (not connected) or dead); 
   end 
   else medium;    
  end; 
end.

