Yoko

All sides of Injection
It is currently 2025-12-26 12:48:31

All times are UTC+02:00




Post new topic  Reply to topic  [ 50 posts ]  Go to page 1 2 3 Next
Author Message
PostPosted: 2008-03-09 19:05:39 
Offline
User avatar

Joined: 2005-08-09 23:16:57
Posts: 97
Такая проблема:
Чар заканчивает обращение к клетке (будь то "You put", "too far", "loosen" — с любым результатом) и просто останавливается. Как будто проверку на сообщение в журнале вообще отключили. Проявляется это совершенно спонтанно — копал-копал и перестал, но скрипт висит.
Если копнуть вручную, действие выполняет и продолжает работу скрипта, как ни в чем не бывало.

Гляньте, пожалуйста. Мож я напортачил чего.

Code:
sub mining()
   var mx, my, mz, i, j
   mining:
      uo.deletejournal()
      mx = uo.getx("self")
      my = uo.gety("self")
      mz = uo.getz("self")
      
      uo.deletejournal()
      for i = mx-4 to mx+4
      for j = my-4 to my+4
         
         uo.print("Копаем в координатах: "+str(mx-i)+" "+str(my-j))
         counter()
         
         while not UO.InJournal("no ore here|location|far away|in rock|beyond|loosen|target")   
            hide()
            
            if uo.waiting() then
               uo.canceltarget()
            endif
            
            uo.waittargettile("1341", str(i), str(j), str(mz))
            uo.usetype(Shovel)
            while not uo.injournal("You put|heavy|location|no ore|but fail|far away|in rock|nothing")
               wait (200)
            wend
            
            if uo.weight >= maxweight then
               end()
            endif
         wend
         uo.deletejournal()
      next
      next
      goto mining
end sub

sub hide()
   while not uo.hidden()
      uo.deletejournal()
      if uo.injournal("preoccupied") then
         uo.exec("warmode '1'")
         wait(100)
         uo.exec("warmode '0'")
      endif
      uo.print("Прячемся...")
      uo.useskill("Stealth")
      wait(4000)
   wend
end sub


Top
   
 Post subject:
PostPosted: 2008-03-10 02:23:14 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
Ну, быстрее всего, не при любом сообщении, а именно при "loosen". Потому как в внутреннем цикле ожидания (динамической паузе) это сообщение не упомянуто. Поэтому когда оно выскочит, чар остановится и будет ждать. А когда снова копнешь вручную, появится другое сообщение, вот скрипт и продолжит работу.

Code:
while not uo.injournal("You put|heavy|location|no ore|but fail|far away|in rock|nothing")

_________________
Ни один скрипт не работает? Пора обновить Инжект...
Все работает, но хочется большего? Пора переходить на стелс...


Top
   
 Post subject:
PostPosted: 2008-03-10 02:27:35 
Offline
User avatar

Joined: 2005-08-09 23:16:57
Posts: 97
Edred, спасибо, что посмотрел!

Но останавливается на самом деле независимо от сообщения. Может выкопать и остановиться.

Хайдинг не может быть причиной?


Top
   
 Post subject:
PostPosted: 2008-03-10 12:34:35 
Offline
Expert!
User avatar

Joined: 2005-05-04 14:05:19
Posts: 2580
Location: Москва
"А может все было наоборот..."
Возможно длальше второго цикла никуда и не уходим... потому как сообщения не соответствуют действительность -> в журнали клилоки

wait (200) в полне достаточно чтобы паралельный скрипт стер журнал... но это 1 раз... каждый раз такое врятли удастся...


Top
   
 Post subject:
PostPosted: 2008-03-10 14:15:07 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
Ха, так хайдинг запущен параллельно? Автору - напоминание: телепаты в отпуске. Нужна помощь - будь добр подробнейше описать все, что делается.

Журнал у инжекта один, если второй скрипт стирает журнал, то первому никаких сообщений не достанется. Проблема наверняка в этом. Решение - зачем во втором скрипте стирать журнал? Переделать.

_________________
Ни один скрипт не работает? Пора обновить Инжект...

Все работает, но хочется большего? Пора переходить на стелс...


Top
   
 Post subject:
PostPosted: 2008-03-10 14:21:09 
Offline
Expert!
User avatar

Joined: 2005-05-04 14:05:19
Posts: 2580
Location: Москва
Эд там цикл стирания раз в 4 сек...
унего же 0.2 сек проверка...
что бы совпало, надо постаратся.


Top
   
 Post subject:
PostPosted: 2008-03-10 14:31:44 
Offline

Joined: 2006-11-25 17:44:44
Posts: 258
Хайд у него запускается не параллеьно, а перед самой копкой.так что все в норме. Автор, в первом While вставь еще проверку по таймеру ,чтоб он у тебя на одном тайле больше определенного времени не копал. Проблема отпадет...
Code:
t=uo.Timer()
while not (UO.InJournal("bla bla bla") or ((t + 3000) < UO.Timer()))


Top
   
 Post subject:
PostPosted: 2008-03-10 14:46:38 
Offline
User avatar

Joined: 2005-08-09 23:16:57
Posts: 97
Grin wrote:
wait (200) в полне достаточно чтобы паралельный скрипт стер журнал... но это 1 раз... каждый раз такое врятли удастся...

Deletejournal стоял в майнинге, прямо перед хайдом. Я перенес его в хайд в надежде, что это решит проблему, правда сейчас смотрю - и понимаю, что проблемы это не решило и не решит xD

В смысле проблема осталась и после переноса делита в хайд.


Top
   
 Post subject:
PostPosted: 2008-03-10 14:51:19 
Offline
User avatar

Joined: 2005-08-09 23:16:57
Posts: 97
Edred wrote:
Нужна помощь - будь добр подробнейше описать все, что делается.

Описал настолько подробно, насколько я в курсе этой проблемы.
Чар может остановиться и на третьей клетке, после запуска скрипта, и на двадцать третьей. Хоть после третьего рекола в дом и последующего возврата в шахту.

Скрипт просто висит запущенным и ждет (насколько я понял) сообщения в журнале, как будто его не было.


Top
   
 Post subject:
PostPosted: 2008-03-10 14:54:00 
Offline
User avatar

Joined: 2005-08-09 23:16:57
Posts: 97
Grin wrote:
Эд там цикл стирания раз в 4 сек...
унего же 0.2 сек проверка...
что бы совпало, надо постаратся.

Стирание стояло непоследственно в начале цикла:

Code:
while not UO.InJournal("no ore here|location|far away|in rock|beyond|loosen|target")
uo.deletejournal()
hide()


В хайде стирания вообще не было. Я перенес стирание в хайд в надежде, что это решит проблему. К тому же реакция на "preoccupied" не срабатывала.


Top
   
 Post subject:
PostPosted: 2008-03-10 14:55:37 
Offline
User avatar

Joined: 2005-08-09 23:16:57
Posts: 97
grundick wrote:
Автор, в первом While вставь еще проверку по таймеру ,чтоб он у тебя на одном тайле больше определенного времени не копал. Проблема отпадет...
Code:
t=uo.Timer()
while not (UO.InJournal("bla bla bla") or ((t + 3000) < UO.Timer()))

Спасибо, а worldsave таймеру не помешает?


Top
   
 Post subject:
PostPosted: 2008-03-10 15:33:43 
Offline

Joined: 2006-11-25 17:44:44
Posts: 258
а почему он ему должен помешать? ну даже если очень длинный будет сейв, перескочит он через пару клеток...300с=5мин...


Top
   
 Post subject:
PostPosted: 2008-03-10 15:39:51 
Offline
User avatar

Joined: 2005-08-09 23:16:57
Posts: 97
Об этом я и спрашивал.
Ну, проблемы избежали, спасибо grundick. А как ее все-таки решить? Могут ли лаги быть виной тому, что сообщение-результат пропускается скриптом?


Top
   
 Post subject:
PostPosted: 2008-03-10 15:50:20 
Offline

Joined: 2006-11-25 17:44:44
Posts: 258
Блин, проверку ВО ВТОРОМ WhiLe НАДО! Что то я туплю :) А хз что тому виной.Тоже сталкивался с такой проблемой.То ли от сервера мессага не приходит, то ли инжект её не читает. :roll:


Top
   
 Post subject:
PostPosted: 2008-03-10 15:51:08 
Offline

Joined: 2006-11-25 17:44:44
Posts: 258
Гринушка, займись делом :) Прошу тебя :)


Top
   
 Post subject:
PostPosted: 2008-03-10 15:52:18 
Offline
Expert!
User avatar

Joined: 2005-05-04 14:05:19
Posts: 2580
Location: Москва
Grin wrote:
"А может все было наоборот..."
Возможно длальше второго цикла никуда и не уходим... потому как сообщения не соответствуют действительность -> в журнали клилоки


Top
   
 Post subject:
PostPosted: 2008-03-10 16:17:48 
Offline
User avatar

Joined: 2005-08-09 23:16:57
Posts: 97
grundick wrote:
Блин, проверку ВО ВТОРОМ WhiLe НАДО! Что то я туплю :)

Да всё в порядке, во второй бы и вставил *)


Top
   
 Post subject:
PostPosted: 2008-03-10 16:20:40 
Offline
User avatar

Joined: 2005-08-09 23:16:57
Posts: 97
Grin wrote:
"А может все было наоборот..."
Возможно длальше второго цикла никуда и не уходим... потому как сообщения не соответствуют действительность -> в журнали клилоки

Какие клилоки — я же написал, что останавливается совершенно спонтанно. Не после первого копания, и даже не после первой клетки. Это может быть «4,2» или «-2,3» — что угодно.


Top
   
 Post subject:
PostPosted: 2008-03-10 21:04:36 
Offline
User avatar

Joined: 2005-08-09 23:16:57
Posts: 97
[quote="Grin"][/quote]
Извини, что-то резковато получилось *)


Top
   
 Post subject:
PostPosted: 2008-03-10 23:49:54 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
"Подробнейше" - это значит, что начать стоит с версии инжекта, клиента, названия и адреса шарда. Так, для затравки.

Также меня весьма интересует, правда ли на этом шарде можно копать квадрат 9х9 вокруг чара, или, все-таки, 5х5 как на большинстве шардов, а автор просто ошибся. Потому как если последнее - то на самом деле чар не стоит, он пытается достать до указанных тайлов, но не может. Вот и стоит и перебирает их. 5х5 - это 25 тайлов, 9х9 - это 81. То есть 56 тайлов лишних.

_________________
Ни один скрипт не работает? Пора обновить Инжект...

Все работает, но хочется большего? Пора переходить на стелс...


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 50 posts ]  Go to page 1 2 3 Next

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 0 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited