пытался написать скрипт на "локпикинг" исходя из своих неглубоких познаний,
но столкнулся с проблемкой: скрипт проходит 1 цикл все хорошо, на втором цикле перескакивает,
т.е. не ковыряет замок до тех пока не вылезет в журнале строка об "успешном взломе", а перескакивает
дальше по скрипту на процедуру (procedure lock_chest)
кто может помочь?!
п.с.: играю на Форест Варсе
(есть необходимость перезапирать замки из-за поломки сундуков при чрезмерном взломе)
Code: Select all
Program lockpicking;
{$Include 'all.inc'}
const
Chest = $47D3A9A3;
Key = $4000D42A;
lp_type = $14FB;
lp_color = $0000;
lp_value = 50;
lp_get = 100;
var
ctime : TDateTime;
k : integer;
m : integer;
procedure lock_chest;
begin
repeat
checksave;
WaitTargetObject(Chest);
UseObject(Key);
wait(500);
until (InJournalBetweenTimes('You lock the container', ctime, Now)<>-1);
end;
procedure lock_check;
begin
waitconnection(5000);
If Count(lp_type) < lp_value then
begin
FindType(lp_type, ground);
if FindCount > 0 then
begin
m:= FindQuantity;
Grab( FindItem, lp_get );
wait(1000);
checksave;
Addtosystemjournal('Взял еще ' + inttostr(lp_get) + ' отмычек из ' + inttostr(m));
end
else
begin
Addtosystemjournal('Нет отмычек на полу, добавьте');
repeat
wait(1000);
findtype(lp_type, ground);
until FindCount > 0;
m:= FindQuantity;
Grab(FindItem, lp_get);
wait(1000);
checksave;
Addtosystemjournal('Взял еще ' + inttostr(lp_get) + ' отмычек из ' + inttostr(m));
end;
end;
end;
Begin
while not Dead do
begin
k:=0;
repeat
checksave;
lock_check;
WaitTargetObject(Chest);
UseType(lp_type, lp_color);
k:=k+1;
until (InJournalBetweenTimes('успешно|быть использовано', ctime, Now)>=0) or (k>10);
if (InJournalBetweenTimes('успешно|быть использовано', ctime, Now)>=0) or (k>10) then
begin
lock_chest;
end;
end;
End.