Page 2 of 3

Posted: 2008-03-11 00:16:52
by Виталь
Инжект: 712.28
Клиент: 203
Шард: DrW

> правда ли на этом шарде можно копать квадрат 9х9 вокруг чара
Правда. От 4,4, до -4,-4.
Когда достать не может (сталагмит или нет тайла), пишет "too far".

Он просто не реагирует на сообщение о результате. Начинает копать тайл, выкапывает (или не выкапывает) и стоит тупит, пока я не копну еще раз, чтобы отослать результат.

Мой единственный вариант — это лаги (инвизку в сейфе он тоже иногда не находит), потому как коннект последние несколько дней в полной заднице из-за помехов на линии, а до этого проблемы не наблюдалось. Но дело в том, что скрипт я закончил именно в период хренового инета, поэтому уверенно рассуждать не могу.

Posted: 2008-03-11 00:36:50
by Grin
инжект не может не увидить сообщение, если оно появилось в журнале уо клиента.

Posted: 2008-03-11 01:04:24
by Виталь
Grin wrote:инжект не может не увидить сообщение, если оно появилось в журнале уо клиента.

А какие еще варианты? Ну может он к лопате не обращается.
Но вообще ничего не пишется и скрипты в состоянии запущенности.

О, блин. Забыл про контроль опасности, который запускается параллельно.

Может он и стирает журнал? о_о

Code: Select all

sub safecontrol()
   var danger
   while 1
      uo.deletejournal()
      while not uo.InJournal(':')
         wait(200)
      wend
      if uo.InJournal('You loosen') then
            wait(200)
      else
         danger=uo.GetNotoriety(uo.JournalSerial(0))
         if RecallDetect==1 then
            if uo.InJournal("revealed") then
               checklag()
               uo.snap()
               danger()
               uo.textopen()
               uo.textprint("Раздетектили!")
            endif
         endif
         if RecallElement==1 then
            if uo.InJournal("Element") then
               checklag()
               uo.snap()
               danger()
               uo.textopen()
               uo.textprint("Выкопал элемента!")
            endif
         endif
         if RecallPhysicalDanger==1 then
            if uo.InJournal('attacking you') then
               checklag()
               uo.snap()
               danger()
               uo.textopen()
               uo.textprint("Кто-то атакует!")
            endif
         endif
         if RecallSeenDanger==1 then
            if danger==6 and uo.JournalSerial(0)<>uo.GetSerial() then
               checklag()
               uo.snap()
               danger()
               uo.textopen()
               uo.textprint("В шахте оказался ПК - "+UO.GetName(UO.JournalSerial(0)))
            endif
            if danger==5 and uo.JournalSerial(0)<>uo.GetSerial() then
               checklag()
               uo.snap()
               danger()
               uo.textopen()
               uo.textprint("В шахте вражеский гильдиец - "+UO.GetName(UO.JournalSerial(0)))
            endif
            if danger==4 and uo.JournalSerial(0)<>uo.GetSerial() then
               checklag()
               uo.snap()
               danger()
               uo.textopen()
               uo.textprint("В шахте оказался криминал - "+UO.GetName(UO.JournalSerial(0)))
            endif
         endif
         if RecallBluePlayer==1 then
            if danger==1 and uo.JournalSerial(0)<>uo.GetSerial() then
               checklag()
               uo.print('синий')
               uo.snap()
               danger()
               uo.textopen()
               uo.textprint("В шахте оказался синий - "+UO.GetName(UO.JournalSerial(0)))
            endif
         endif
      endif
   wend
end sub

Posted: 2008-03-11 01:07:06
by Виталь
Раз уж дело дошло до контроля опасности, помогите, пожалуйста, дописать в него время событий. Я пытался вытащить из реконнекта, но не очень понял, как это работает xD

А еще ники не записываются ._.

Posted: 2008-03-11 01:31:55
by korzh

Code: Select all

...
   while 1
      uo.deletejournal()
      while not uo.InJournal(':')
         wait(200)
      wend
...

Обрати внимание на то, что все сообщения из журнала типа yoo cant see... no ore..revealed.. и прочий системный флуд, в журнале инжекта отображается как Имя_персонажа: ляляля...
Cоответсвенно благодаря скрипту safecontrol() у тебя каждые ~0.2секунды чиститься журнал, вне зависимости от того копает ли чар, пряечтся и тд. Испольуй deljournal() и пусть у тебя голова не болит :)

На тему времени и даты, можно например так:

Code: Select all

sub now()
  return getDate( '-' ) + ' ' + getTime( ':' )
endsub

Sub getDate( n )
   var d = str( uo.date() )
   if strlen( d ) == 5 then
      d = "0" + d
   endif
   return right( d, 2 ) + n + mid( d, 2, 2 ) + n + left( d, 2 )
endsub

Sub getTime( n )
   var t = str( uo.time() )
   if strlen( t ) == 5 then
      t = "0" + t
   endif
   return left( t, 2 ) + n + mid( t, 2, 2 ) + n + right( t, 2 )
endsub


Используешь так:

Code: Select all

sub test()
  uo.print( now() )
endsub

Posted: 2008-03-11 01:41:29
by Виталь
korzh wrote:Cоответсвенно благодаря скрипту safecontrol() у тебя каждые ~0.2секунды чиститься журнал, вне зависимости от того копает ли чар, пряечтся и тд. Испольуй deljournal() и пусть у тебя голова не болит :)

Я так понял, сэйфконтрол будет работать с отдельным журналом, не мешая копанию? Очень хорошо, открыл для себя функцию :o
Спасибо! Кстати, пишется она без "uo."?

upd: а, туплю. Конечно, с "уо".

Posted: 2008-03-11 01:45:41
by Виталь
korzh wrote:На тему времени и даты, можно например так:

Code: Select all

sub now()
  return getDate( '-' ) + ' ' + getTime( ':' )
endsub

Sub getDate( n )
   var d = str( uo.date() )
   if strlen( d ) == 5 then
      d = "0" + d
   endif
   return right( d, 2 ) + n + mid( d, 2, 2 ) + n + left( d, 2 )
endsub

Sub getTime( n )
   var t = str( uo.time() )
   if strlen( t ) == 5 then
      t = "0" + t
   endif
   return left( t, 2 ) + n + mid( t, 2, 2 ) + n + right( t, 2 )
endsub


Используешь так:

Code: Select all

sub test()
  uo.print( now() )
endsub

Ое! Спасибо большое!
К сожалению, сейчас не могу опробовать, но как опробую, обязательно отпишусь! Чую, этим все не закончится :o

Posted: 2008-03-11 01:52:55
by korzh
Виталь wrote:
korzh wrote:Cоответсвенно благодаря скрипту safecontrol() у тебя каждые ~0.2секунды чиститься журнал, вне зависимости от того копает ли чар, пряечтся и тд. Испольуй deljournal() и пусть у тебя голова не болит :)

Я так понял, сэйфконтрол будет работать с отдельным журналом, не мешая копанию? Очень хорошо, открыл для себя функцию :o
Спасибо! Кстати, пишется она без "uo."?

upd: а, туплю. Конечно, с "уо".


Нет, не совсем :) Она будет удалять все строки журнала содержащие определенные сообщения.

сама функция:

Code: Select all

sub deljournal( msg )
  while uo.injournal( msg )
    uo.setjournalline( uo.injournal(msg) - 1, "" )
  wend
endsub


Используешь так:

Code: Select all

sub test()
    deljournal( 'текст' )
endsub

sub test2()
  if uo.injournal( 'текст' ) then
    deljournal( 'текст' )
  endif
endsub

Posted: 2008-03-11 01:58:05
by Виталь
korzh wrote:Нет, не совсем :) Она будет удалять все строки журнала содержащие определенные сообщения.

Вот оно что! И что же мне удалять в моем случае? ._.
Ведь если удалять двоеточие, скрипт все равно слетать будет.

Posted: 2008-03-11 02:06:58
by korzh
Виталь wrote:
korzh wrote:Нет, не совсем :) Она будет удалять все строки журнала содержащие определенные сообщения.

Вот оно что! И что же мне удалять в моем случае? ._.
Ведь если удалять двоеточие, скрипт все равно слетать будет.


Ну во первых удалять сообещния
revealed, Element, attacking you

Во вторых не чень понимаю зачем по двоеточию проверять?

Code: Select all

...
   while 1
      uo.deletejournal()
      while (not uo.InJournal('revealed') || not uo.Injournal('Element') || not .... и так все "опасные" сообщения
         wait(200)
      wend
....

Posted: 2008-03-11 02:15:13
by Виталь
Потому что мне нужно проверять по нику, который в журнале появляется после слов «You see:». Однако на сообщение «You see:», в отличие от одинокого двоеточия, сэйфконтрол мистическим образом не реагирует. Проверял не один раз.

Posted: 2008-03-11 02:41:44
by korzh
Виталь wrote:Потому что мне нужно проверять по нику, который в журнале появляется после слов «You see:». Однако на сообщение «You see:», в отличие от одинокого двоеточия, сэйфконтрол мистическим образом не реагирует. Проверял не один раз.


Чтото не очень понял..

Posted: 2008-03-11 03:12:17
by Grin
отладить скрипт, не представляет никакой сложности на месте...
не можешь понять что происходит... определись хотяб с местом...
за принтуй каждую строчку...

Posted: 2008-03-11 07:47:26
by Виталь
korzh wrote:Чтото не очень понял..

Ну проверка появления опасности :)
Когда пк приходит.

Posted: 2008-03-11 07:50:55
by Виталь
Grin wrote:отладить скрипт, не представляет никакой сложности на месте...
не можешь понять что происходит... определись хотяб с местом...
за принтуй каждую строчку...

На элементалей реагирует, на пк — нет.
Не раз проверялось.
Обрезаешь до двоеточия — ведет себя, как надо.

Posted: 2008-03-11 12:26:31
by Grin
потому что ты гадаешь на кофейной гуще...

Posted: 2008-03-11 13:23:30
by Виталь
Ладно, что спорить. Проверю еще раз. Спасибо за это.

А с вытягиванием ников поможете? А то записал только один раз — и то синего майнера в пк-шники.

Posted: 2008-03-11 21:51:24
by Edred
Виталь wrote:О, блин. Забыл про контроль опасности, который запускается параллельно.

Может он и стирает журнал? о_о


Вот классический вариант для объяснения, что "телепаты в отпуске". Если уж ты забыл, то кто, интересно, может это помнить? Естественно, этот скрипт и трет тебе журнал. Более того, и мининг трет журнал для этого скрипта! Так что проверка на опасность весьма дырявая... Запомни: журнал у инжекта один на все скрипты. Решение - использование функции удаления конкретных строк из журнала. Что тебе и посоветовали.

Виталь wrote:Потому что мне нужно проверять по нику, который в журнале появляется после слов «You see:». Однако на сообщение «You see:», в отличие от одинокого двоеточия, сэйфконтрол мистическим образом не реагирует. Проверял не один раз.


Ну раз есть желание гробить время и проверять - флаг в руки. А надо было просто почитать форум, здесь неоднократно объяснялось, что фраза "You see:" добавляется клиентом УО в журнал этого самого клиента. А не в журнал инжекта. А инжект такую фразу не добавляет. А значит и шансов ее увидеть в журнале инжекта нет никаких.

Posted: 2008-03-11 22:04:34
by Виталь
Edred wrote:фраза "You see:" добавляется клиентом УО в журнал этого самого клиента. А не в журнал инжекта. А инжект такую фразу не добавляет. А значит и шансов ее увидеть в журнале инжекта нет никаких.

Ну заебца, так что мне все-таки тереть? :o

Posted: 2008-03-11 22:16:34
by Edred
Как, как... Молча. :lol:

В общем, так. Идешь в раздел со скриптами, там есть прилепленный топик "Наследство от Edred-а". Там есть мой скрипт на майнинг. В нем есть соответствующая аналогичная процедура, которая тоже запускается параллельно (автоматически, естественно). И отслеживает врагов, элемов и прочее. Разбираешь по косточкам и делаешь. Что непонятно - спрашиваешь.