Page 1 of 1

uo.DeleteJournal(...) или альтернативный CheckLag()

Posted: 2011-02-20 10:10:40
by DreadDy
Суть проблемы в том, что внутрь скрипта CheckLag() уже встроена процедура uo.DeleteJournal(), что приводит к удалению нужных для основного скрипта записей. Можно ли каким-то образом ограничить очистку журнала процедурой uo.DeleteJournal() текстом "a backpack"? uo.DeleteJournal("a backpack") не помогает :(

Пример использования
.......
repeat
checklag()
until uo.InJournal(msg1) or uo.InJournal(msg2)
if uo.InJournal(msg1) then
.......

В итоге чар зацикливается на клацанье по рюкзаку.

Сам CheckLag()
Sub checklag()
if uo.Waiting()>0 then
uo.Exec('canceltarget')
end if
uo.DeleteJournal('a backpack')
; изначально uo.DeleteJournal()
uo.Click('backpack')
repeat
wait(50)
until uo.InJournal('a backpack')
end sub


Пожалуйста, подскажите как выйти из положения либо дайте наводку на альтернативный CheckLag().

Re: uo.DeleteJournal(...) или альтернативный CheckLag()

Posted: 2011-02-20 10:33:41
by Irina E

Code: Select all

sub checklag()
   repeat
      UO.DeleteJournal()
      UO.Click('backpack')
   until backpack()==1
endsub
sub backpack()
   var n
   for n=0 to 200
      if uo.injournal('a backpack') then
         return 1
      endif
      wait(200)
   next
endsub


пробуй вот этот

Re: uo.DeleteJournal(...) или альтернативный CheckLag()

Posted: 2011-02-20 12:43:13
by Mirage
Мне кажется он спросил вот про это:

Code: Select all

Sub checklag()
   DeleteJournal("ackpack")
   UO.Click("backpack")
   repeat
      wait(100)
   until UO.InJournal("ackpack")
end sub
Sub DeleteJournal(msg)
   While UO.InJournal(msg)
      UO.SetJournalLine(UO.InJournal(msg) - 1,'')
   wend
endsub

если надо очистить весь журнал в игре пишется
UO.DeleteJournal()
Если требуется стереть конкретную строку
DeleteJournal("ackpack") ; без префикса UO.

Re: uo.DeleteJournal(...) или альтернативный CheckLag()

Posted: 2011-02-20 13:39:40
by Irina E
ок

а как там моЙ скрипт

Re: uo.DeleteJournal(...) или альтернативный CheckLag()

Posted: 2011-02-20 14:11:14
by Mirage
в процессе.

Re: uo.DeleteJournal(...) или альтернативный CheckLag()

Posted: 2011-02-21 21:48:51
by DreadDy
Mirage wrote:Если требуется стереть конкретную строку
DeleteJournal("ackpack") ; без префикса UO.

как раз это я и имел в виду!

Сделал как ты предложил и получил: "Line 351: Function not found - DELETEJOURNAL". Может быть у меня трабл с инжой, что она такую функцию не распознает? Версия YokoInjection 702.11 PaWn, Script parser version: 0.3, Yoko Build 212.11. Играю на Dragon World.

Re: uo.DeleteJournal(...) или альтернативный CheckLag()

Posted: 2011-02-21 22:21:51
by Mirage
нужно целиком копировать мой кусок скрипта.
С префиксом UO. команды встроенны в инжект. Без UO. это функция которую надо прописывать. У меня как раз и есть эта функция. Если ее не вставлять в них скрипта то просто строка
DeleteJournal("ackpack")
будет вызывать ошибку.

Code: Select all

Sub DeleteJournal(msg)
   While UO.InJournal(msg)
      UO.SetJournalLine(UO.InJournal(msg) - 1,'')
   wend
endsub
в конце скрипта вставь куданибудь.

Re: uo.DeleteJournal(...) или альтернативный CheckLag()

Posted: 2011-02-22 19:45:06
by DreadDy
Извиняюсь за тупню... Вкурил что к чему :) В первый раз невнимательно просмотрел код.
Спасибо БОЛЬШОЕ тебе, Mirage! Как тебе в рейтинг плюсик поставить? :)

Кстати, раз уж тут был оффтоп, то и я не буду стесняться :)
Скажите, пожалуйста, uo.FilterSpeech не поддерживается на инже 702,11? Или изменился синтаксис процедуры?

Code: Select all

uo.FilterSpeech('on')
uo.FilterSpeech('add','Items found: 0')

на YokoInjection 505.18 VeNdOr работает, на YokoInjection 702.11 PaWn нет :(

Re: uo.DeleteJournal(...) или альтернативный CheckLag()

Posted: 2011-02-22 21:24:53
by Mirage
должен работать. Проверяй правильно ли написал фразу. Ее лучше скопировать а не набирать руками.

Code: Select all

Sub REZ()
   var body = '0x2006'
   var dagger = '0x0F51'
   var corpse
   UO.Set('quiet','1')
   uo.set('finddistance', '3')

   UO.filterspeech('clear')
   UO.filterspeech('add','[Surprize ! Fast loot detected!]')
   UO.filterspeech('add','[Зафиксирована ловкость рук]')
   UO.filterspeech('on')

   uo.findtype(body, -1, 'ground')
   if uo.findcount() and Uo.GetDistance( 'finditem' ) < 3  then
      var x = uo.GetGraphic(uo.ObjAtLayer('Lhand'))
      var y = uo.GetGraphic(uo.ObjAtLayer('Rhand'))
      uo.warmode(0)
      wait(500)
      corpse = uo.getSerial("finditem")
      UO.WaitTargetObject(corpse)
      UO.UseType(dagger)
      wait(1000)
      uo.Equipt('Lhand',x)
      uo.Equipt('Rhand',y)
      Loot()
      uo.warmode(1)
   endif
   UO.Set('quiet','0')
end sub

Re: uo.DeleteJournal(...) или альтернативный CheckLag()

Posted: 2011-02-22 21:33:50
by Irina E
мне интересна много ли осталось в моём скрипте работы?

Re: uo.DeleteJournal(...) или альтернативный CheckLag()

Posted: 2011-02-26 10:08:17
by DreadDy
Использовал, поменяв фильтр, но нужного результат не дало - инжа наглухо замолчала :)

Code: Select all

UO.Set('quiet','1')
UO.filterspeech('clear')
UO.filterspeech('add','Items found: 0')
UO.filterspeech('on')

Скорее всего,

Code: Select all

UO.Set('quiet','1')
просто отрезает выведение любых сообщений инжи, и дальнейшие установки фильтра сообщений ни к чему не приводят. Может быть я ошибаюсь?