помогите пожалуйста сделать денамическое ожидание в строке * но так что бы она завершала свою работу через N секунд(т.е. в случаи дисконекта в этот момент не замерала там навсегда)
Скрипт выполняет:
- проверка на ману. пока мана не будет полной т.е. = Int он будет медитировать(процедура есть)
- пытается срыколится по номеру руны, до тех пор пока текущее значение маны не станет меньше значения manna(фиксируется перед каждой попыткой рекола) и в журнале не будет сообщения о физле каста
- если нет реагентов чар попытается среколится по заряду, на лодку и там взять реги.
- если заряда нет фулдисконект.
по возможности прошу указать на сделаные мной ошибки
Code: Select all
Const
   RuneBook = ID;
   NumberHomeRune = 9;
........................................................
Procedure Recal(RuneNumber:Integer);
var
   manna:Integer;
   cTimeRecal:TDateTime;
   RecalTimer:Cardinal;
begin
if not Dead then
   Disarm;
   wait(800);
   CheckMana;
   RecalTimer:=Timer;
   repeat
      cTimeRecal:=now;
      UseObject(RuneBook);
      manna:=Mana
      WaitGump(IntToStr(600 + RuneNumber));
      wait(5000); //*
      if (InJournalBetweenTimes("You don't have enough reagents to cast that spell",cTimeRecal,now)>=0) then
      begin
         UseObject(RuneBook);
         WaitGump(IntToStr(2 * NumberHomeRune));
         wait(5000); //*
         if (InJournalBetweenTimes('is out of charges.',cTimeRecal,now)>=0) then
         begin
            AddToSystemJournal ('Sorry... But I am not have reagents and charges for recal. Script stop.');
            FullDisconnect;
         end
         FuncOnBoad;
         wait(200);
         manna:=Mana;
      end
   until ((not InJournalBetweenTimes('The spell fizzles',cTimeRecal,now)>=0) and (manna>Mana)) or (Timer>(RecalTimer+(2*60*1000))
end
end;

