помогите пожалуйста сделать денамическое ожидание в строке * но так что бы она завершала свою работу через 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;