Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7

Вопрос по журналу.

тут можно задать вопрос по скриптингу
Post Reply
Procosha
Neophyte
Neophyte
Posts: 30
Joined: 10.09.2009 21:04
Location: AoP
Contact:

Вопрос по журналу.

Post by Procosha »

Никак не могу зделать грамотную проверку, возможно у кого то есть уже заготовки.
у меня скрипт делает следующие:
Procedure Fish(tile:Word;x,y,z:Integer);
var
starttime:=Now;
Monstr,k:Integer;
begin
Monstr:=0027;
if TargetPresent then CancelTarget;
UseObject(Pole);
WaitForTarget(4000);
if TargetPresent then TargetToTile(tile,x,y,z);
repeat
wait(500);
k:=k+1;
untill (InJournalBetweenTimes('Нема рыбки', starttime, Now)<>-1)
or (InJournalBetweenTimes('Все рыбы уплыли', starttime, Now)<>-1)
or (FindType(Monstr,Ground))
or k > 100;
end;
Дело в том что, скрипт по каким то причинам залипает и ждет до тех пор пока K > 100... игнорируя сообщения журнала и поиск монстра на земле.
Пробывал играться и дистанциям по вертикали и горизонтали - БАЛАЛАЙКА (не работает).

В изи уо есть проверка журнала которая обновляется через несколько секунд. Если на момепроверки нету НОВОГО СООБЩЕНИЯ дает ему значение N/A.
Как на стелсе можно такое реализовать?
Last edited by Procosha on 07.12.2009 18:58, edited 6 times in total.
*ули - гули!
CFA
Developer
Developer
Posts: 492
Joined: 20.04.2006 6:03
Contact:

Re: Вопрос по журналу.

Post by CFA »

Procosha wrote:
begin
if TargetPresent then CancelTarget;
UseObject(Pole);
WaitForTarget(4000);
if TargetPresent then TargetToTile(tile,x,y,z);
repeat
wait(500);
k:=k+1;
untill (InJournalBetweenTimes('Нема рыбки', starttime, Now)<>-1)
or (InJournalBetweenTimes('Все рыбы уплыли', starttime, Now)<>-1)
or (FindType(Monstr,Ground))
or k > 100;
end;
где инициализация starttime?
(FindType(Monstr,Ground)) - должна быть ошибка компиляции
k > 100 - аналогично.

приведи именно тот код которые в скрипте. а этот в принципе не рабочий
Procosha
Neophyte
Neophyte
Posts: 30
Joined: 10.09.2009 21:04
Location: AoP
Contact:

Re: Вопрос по журналу.

Post by Procosha »

CFA wrote:
Procosha wrote:
begin
if TargetPresent then CancelTarget;
UseObject(Pole);
WaitForTarget(4000);
if TargetPresent then TargetToTile(tile,x,y,z);
repeat
wait(500);
k:=k+1;
untill (InJournalBetweenTimes('Нема рыбки', starttime, Now)<>-1)
or (InJournalBetweenTimes('Все рыбы уплыли', starttime, Now)<>-1)
or (FindType(Monstr,Ground))
or k > 100;
end;
где инициализация starttime?
(FindType(Monstr,Ground)) - должна быть ошибка компиляции
k > 100 - аналогично.

приведи именно тот код которые в скрипте. а этот в принципе не рабочий
Подправил, красивее... Даже если он рабочий всеравно не хватает одной проверки. Как её написать даже идей нету...
*ули - гули!
CFA
Developer
Developer
Posts: 492
Joined: 20.04.2006 6:03
Contact:

Re: Вопрос по журналу.

Post by CFA »

Code: Select all

starttime := now;
useObject(Pole);
waitForTarget(4000);
if TargetPresent then TargetToTile(tile,x,y,z);
repeat
wait(500);
k := k + 1;
until (InJournalBetweenTimes('Нема рыбки|Все рыбы уплыли', starttime, Now)<>-1) or 
(FindType(Monster,Ground)<>0) or 
(k > 100);
а насчет одной проверки - увы, не экстрасенс.
WladL
Apprentice
Apprentice
Posts: 240
Joined: 27.07.2009 17:21
Location: DRW
Contact:

Re: Вопрос по журналу.

Post by WladL »

Procosha wrote: Procedure Fish(tile:Word;x,y,z:Integer);
var
starttime:=Now;
Monstr:=0027;
k:Integer;
begin
Эт чё это за конструкция такая в секции VAR?

сократи строки для поиска, мало-ли там админ пробелов натыкал...
InJournalBetweenTimes('рыбки|уплыли', starttime, Now)<>-1
"Как хочешь ты трудись;
Но приобресть не льстись
Ни благодарности, ни славы,
Коль нет в твоих трудах ни пользы, ни забавы. (с) С.Крылов."
Procosha
Neophyte
Neophyte
Posts: 30
Joined: 10.09.2009 21:04
Location: AoP
Contact:

Post by Procosha »

ребята, спасибо за альтернативное решение проблемы но это не совсем то что я пытаюсь решить.
Сообщения с журнала обрабатываются и отлавливаются нормально, но иногда из-за лага потери пакетов он не начинает ловить...
Тоесть если такое происходит чар будит стоять до тех пор пока k=100.
Есть ли в стелсе какая то проверка что бы если залагало и таргетом он не кликнул по воде что бы не ждать до k=100, а перейти к следующей точке...
В easyuo:
#sysMsg
#journal
Если нету сообщения то их значиние стаёт N/A

Есть ли такая проверка в стелсе?
Кстати время для отображения сообщения в журнале выставляется в самом клиенте, в опциях...
*ули - гули!
Procosha
Neophyte
Neophyte
Posts: 30
Joined: 10.09.2009 21:04
Location: AoP
Contact:

Re: Вопрос по журналу.

Post by Procosha »

WladL wrote:
Procosha wrote: Procedure Fish(tile:Word;x,y,z:Integer);
var
starttime:=Now;
Monstr:=0027;
k:Integer;
begin
Эт чё это за конструкция такая в секции VAR?

сократи строки для поиска, мало-ли там админ пробелов натыкал...
InJournalBetweenTimes('рыбки|уплыли', starttime, Now)<>-1
:oops:
*ули - гули!
Procosha
Neophyte
Neophyte
Posts: 30
Joined: 10.09.2009 21:04
Location: AoP
Contact:

Post by Procosha »

спасибо, притестил, работает! :D
*ули - гули!
CFA
Developer
Developer
Posts: 492
Joined: 20.04.2006 6:03
Contact:

Post by CFA »

Procosha wrote: Есть ли в стелсе какая то проверка что бы если залагало и таргетом он не кликнул по воде что бы не ждать до k=100, а перейти к следующей точке...
ты же проверяешь "if TargetPresent then TargetToTile(tile,x,y,z);", что если есть таргет, то кликать по воде. но вот цикл ожидания будет в любом случае. чтоб такого не было можно сделать например так -

Code: Select all

if TargetPresent then 
begin
 TargetToTile(tile,x,y,z); 
 repeat 
  wait(500); 
  k := k + 1; 
 until (InJournalBetweenTimes('Нема рыбки|Все рыбы уплыли', starttime, Now)<>-1) or 
 (FindType(Monster,Ground)<>0) or 
 (k > 100);
end;
WladL
Apprentice
Apprentice
Posts: 240
Joined: 27.07.2009 17:21
Location: DRW
Contact:

Post by WladL »

Если потеряется пакет от TargetToTile(tile,x,y,z) , то залипания все равно не избежать. Если при срабатывании скилла появляется какая- нить строка, то можно ловить ее появление. И если она не появилась, тогда уже принимать решение вываливаться из цикла или нет.
"Как хочешь ты трудись;
Но приобресть не льстись
Ни благодарности, ни славы,
Коль нет в твоих трудах ни пользы, ни забавы. (с) С.Крылов."
Post Reply