Page 1 of 1
если с момента появления сообщения прошло больше n-секунд
Posted: 10.08.2012 12:14
by GLeXuss
Привет. Жара влияет или что, но встрял на вроде бы простой вещи(
Перс использует предмет по типу на объекте, при этом должен отслеживаться журнал. Если в журнале с момента появления сообщения прошло больше скажем 7 секунд, то перс снова использует предмет по типу на объекте. Можно ли как-то решить это чтобы вовремя ожидания сообщения выполнялась какая-то процедура, допустим checkgump();
Code: Select all
...
repeat
if FindTypeEx($0267,$045E,ground, true) > 0 then
begin
WaitTargetObject(FindItem);
UseObject($5CA5A0EB);
end;
ВОТ ТУТ У МЕНЯ ВОЗНИКЛА ТРУДНОСТЬ(
until ((dead) or (Weight>350));
надеюсь на помощь
Re: если с момента появления сообщения прошло больше n-секун
Posted: 10.08.2012 12:49
by nepopus
В голову пришло простое решение.
Пиши, если не подходит, попробую помочь
Code: Select all
var
cTime: tdatetime;
begin
while (NOT dead) AND (weight < 350) AND (findtypeex($0267, $045E, ground, true) > 0) do begin
if (injournalbetweentimes('удача|неудача', cTime, now) > 0) OR (now >= cTime + 1.0/(24*60*3)) then begin
wait(7000);
cTime := now;
waittargetobject(finditem);
useobject($5CA5A0EB);
end;
wait(300);
end;
end.
Re: если с момента появления сообщения прошло больше n-секун
Posted: 10.08.2012 13:59
by nah nah
function Timer: Cardinal
Re: если с момента появления сообщения прошло больше n-секун
Posted: 10.08.2012 14:03
by GLeXuss
не знаю на сколько я правильно сделал, но получилось так:
Code: Select all
repeat
wait(1000);
if FindTypeEx($0267,$045E,ground, true) > 0 then
begin
WaitTargetObject(FindItem);
UseObject($5CA5A0EB);
end;
repeat
repeat
ctime:= Now;
CheckGump;
ClearJournal;
until (InJournalBetweenTimes('текст1|текст2',ctime,Now)<>0);
until (InJournalBetweenTimes('текст1|текст2',ctime,Now)<>1) and (Delay + 7000 <= Timer);
ClearJournal;
until (dead);
просто в силу нашей погоды и недосыпа из-за жары не сразу вышло то, что хотел получить
Re: если с момента появления сообщения прошло больше n-секун
Posted: 10.08.2012 14:17
by nepopus
GLeXuss, ну дело твое, если работает - пользуй =)
nah nah wrote:function Timer: Cardinal
В данном случае таймер нигде не используется.
Re: если с момента появления сообщения прошло больше n-секун
Posted: 10.08.2012 14:53
by GLeXuss
хм) и точно, таймер нигде не используется. а стоит воткнуть, как проходит один цикл и все стопорится, хотя скрипт висит на исполнении(
Re: если с момента появления сообщения прошло больше n-секун
Posted: 10.08.2012 15:58
by nepopus
GLeXuss wrote:хм) и точно, таймер нигде не используется. а стоит воткнуть, как проходит один цикл и все стопорится, хотя скрипт висит на исполнении(
Я это ответит, т.к. от тут и не нужен. = ) у тебя есть cTime: tdatetime. Посмотри мой пример и используй, если тво не работает.
Re: если с момента появления сообщения прошло больше n-секун
Posted: 11.08.2012 14:11
by GLeXuss
Спасибо за помощь. Чуть попозже попробую твой пример. Мне самое главное чтобы пока идут сообщения он выполнял checkgump, а если сообщения нет больше 7секунд, то он заново использовал инструмент на объекте