Page 1 of 1

Очередная проблема.

Posted: 01.11.2005 15:37
by Antarius
Вот скрипт на Tinkering (он ставит трапы), всё нормально идет, но всегда через 5-20 минут, просто глохнит. Чар стоит нечего не делает, скрипт при этом запущен, но он нечего не делает. Если скрипт перезапустить, то всё равно будет "дуплить". А если в логаут и перезапустить скрипт, тогда начнет делать и опять зависнит, через 5-20мин. И так по кругу. Помогите, пожауйста, в чем беда ?

Code: Select all

Program Traps;
var t,i : Integer;

{$Include 'all.inc'} 

procedure Make;
var b : TDateTime;
Begin
UseObject(FindType($1EB9,backpack));
WaitTargetGround($1BF2);
WaitGump('4402')
   repeat   
   b:=Now;
   wait (500);
   until WaitJournalLine(b, 'select the container you wish to place a trap on|That chest is already trapped.',5000);
WaitTargetObject($4FAF85C2);
wait(3000);

end;




Begin
SetARStatus(true);
Hungry(1,ground);
while not Dead do
begin
waitconnection(3000);
    for t := 0 to 100 do
    begin
CheckSave;
CheckTargetError(5, 2);
grab_in_backpack($1BFB);
  Make;
  end;
   CheckSave;
    Hungry(1,ground);
end;
End.

Posted: 02.11.2005 9:44
by Miralex

Code: Select all

   repeat    
   b:=Now; 
   wait (500); 
   until WaitJournalLine(b, 'select the container you wish to place a trap on|That chest is already trapped.',5000); 
В случае, если в течении 5 секунд ф-ция WaitJournalLine не увидит нужную фразу - она вернет False.

А конструкция:

Code: Select all

repeat
....
until False;
Будет зациклена навечно.

Т.е получается, что этот код зациклится, если в течении 5 секунд ты не получишь нужную фразу.


Поставь в таймаут не 5 а 30 сек и используй без repeat .... until
Напиши просто:
WaitJournalLine(b, 'select the container you wish to place a trap on|That chest is already trapped.',30000);

Posted: 02.11.2005 16:39
by Antarius
Спасибо огромное! :P И ещё вопрос: "Собьётся ли этот скрипт, если в журнале будет посторонние надписи, ведь как написано в скрипте она будет ждать такой то ('select the container you wish to place a trap on|That chest is already trapped.') строки ?" Вот например:
System: Select your material.
System: The carefully place the trap on the container
System: Select your material.
System: select the container you wish to place a trap on
System: That chest is already trapped.
a dread spider: Corp Por
System: Select your material.
System: select the container you wish to place a trap on
System: The carefully place the trap on the container
System: Select your material.
a dread spider: Vas Ort Flam
System: select the container you wish to place a trap on
System: That chest is already trapped.

Posted: 03.11.2005 8:53
by Miralex
Ф-ция WaitJournalLine ждет именно появления указанных тобою строк. На остальные "ненужные" строки в журнале она не обращает внимание.