Yoko

All sides of Injection
It is currently 2024-04-19 04:24:28

All times are UTC+02:00




Post new topic  Reply to topic  [ 12 posts ] 
Author Message
PostPosted: 2013-01-31 16:01:59 
Offline

Joined: 2006-03-27 00:03:20
Posts: 20
Code:
sub main()
   var i
   uo.print("поехали")
   While UO.Life>0
      for i=1 to 17
         kopat()
         uo.press(34)
         wait(200)
         uo.press(34)
      next
      uo.print("GO назад =)")
      kopat()
      for i=1 to 17
         wait(500)
         uo.press(36)
      next
      uo.press(34)
   wend
end sub
sub kopat()
   var where_x,where_y,coords,i
   InfoLogs()
   UO.DeleteJournal()
   where_x=uo.getx()
   where_y=uo.gety()
   for i=-2 to 2
      uo.print("Тайл "+str(i+3)+"/5")
      coords="waittargettile "+" 1343 "+str(where_x)+" "+str(where_y+i)+" 0"
      uo.exec(coords)
      uo.exec("usetype '0x0E85'") # Здесь прописываем тип кирки
      UO.DeleteJournal()
      while (not (UO.InJournal("stop mining") or UO.InJournal("far")))
         wait(1000)
         ArmsLore()
      wend
   next
end sub
sub ArmsLore()
   while (uo.count('0x0E85')<1)
      uo.waittargettype('0x0f51')
      uo.useskill('Arms Lore')
      wait(10000)
   wend
end sub


Top
   
PostPosted: 2013-02-01 14:56:00 
Offline

Joined: 2006-03-27 00:03:20
Posts: 20
Вроде нашел ошибку, и буду тестить сегодня:
Code:
sub kopat()
   var where_x,where_y,coords,i
   InfoLogs()
   UO.DeleteJournal()
   where_x=uo.getx()
   where_y=uo.gety()
   for i=-2 to 2
      uo.print("Тайл "+str(i+3)+"/5")
       coords="waittargettile "+" 1343 "+str(where_x)+" "+str(where_y+i)+" 0"
      uo.exec(coords)
                uo.deletejournal()
                  repeat
         uo.exec("usetype '0x0E85'") # Здесь прописываем тип кирки
        until uo.injournal('stop')
      wait(1000)
   next
end sub


Top
   
PostPosted: 2013-02-01 15:10:48 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
Не плохо бы еще озвучивать вопрос чтобы получить ответ ;)

_________________
Image
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"
Стрелялка для олдов.


Top
   
PostPosted: 2013-02-02 08:55:21 
Offline

Joined: 2006-03-27 00:03:20
Posts: 20
Постоянно крашит скрипт... мое решение оказалось неверным).


Top
   
PostPosted: 2013-02-02 11:00:31 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
Code:
sub ArmsLore()
   while (uo.count('0x0E85')<1)
      uo.waittargettype('0x0f51')
      uo.useskill('Arms Lore')
      wait(10000)
   wend
end sub


while (uo.count('0x0E85')<1)
Не важно одета кирка или лежит в паке - она все равно посчитается в коунте.
Следовательно качание скилла не будет работать, следовательно
Code:
      while (not (UO.InJournal("stop mining") or UO.InJournal("far")))
         wait(1000)
         ArmsLore()
      wend

не имеет смысла потому что сообщения stop mining не будет. Застрянет в вечном цикле. У тебя нет таймера для выхода из циклов.
По крайней мере так на серверах где я играл.

PS процедуры InfoLogs нет в скрипте.

_________________
Image
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"
Стрелялка для олдов.


Top
   
PostPosted: 2013-02-02 12:05:46 
Offline

Joined: 2006-03-27 00:03:20
Posts: 20
Code:
      while (not (UO.InJournal("stop mining") or UO.InJournal("far")))
         wait(1000)
         ArmsLore()
      wend


Я вчера тоже так подумал, но. Данная процедура while идет сразу после попытки копать. Соответственно, пока есть кирки, он будет просто ждать по одной секунде, пока не выкопает всю руду. Потом копнет в след. тайле. Проверка количества кирок нужна для того, что бы в случае, если они закончились, начал качаться армслор.
Code:
sub InfoLogs()

    uo.Print('Ó âàñ âñåãî '+str(uo.Count('0x19B9'))+' áóäóùèõ èíãîòîâ')
    uo.Print('Îñòàëîñü '+str(uo.Count('0x0E85'))+' êèðîê')
end sub


Причем если виснит скрипт (перестает копать, или просто крашит клиент), то происходит это по всей видимости на 5-м шаге (i=5).


Top
   
PostPosted: 2013-02-02 15:19:53 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
чар ударил киркой и ждет сообщения в журнале пока не пролетит следующие сообщения:
Code:
      while (not (UO.InJournal("stop mining") or UO.InJournal("far")))
         wait(1000)
         ArmsLore()
      wend

Из этого цикла чар выйдет. Потому что ожидаются сообщения - "по каким то причинам перестал копать" и "это далеко". Далеко это быть не может - координаты же прописаны, а стоп копанию может быть если армслора задействуется или ктото нападет. => вечный цикл.

_________________
Image
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"
Стрелялка для олдов.


Top
   
PostPosted: 2013-02-02 15:50:55 
Offline

Joined: 2006-03-27 00:03:20
Posts: 20
Играю на зулу. Стоит автолуп(на сервере), когда чар выкапывает все что можно в определенном месте, либо фэйл копания, выдается сообщение, "You stop mining."


Top
   
PostPosted: 2013-02-03 10:31:11 
Offline
User avatar

Joined: 2006-12-08 10:51:50
Posts: 718
Location: Москва
Code:
uo.exec("usetype '0x0E85'")

почему народ стал использовать такую форму вызова функций?


Top
   
PostPosted: 2013-02-04 10:30:52 
Offline

Joined: 2006-03-27 00:03:20
Posts: 20
Вроде нашел, на чем стопиться скрипт:
Code:
while (not (UO.InJournal("stop mining") or UO.InJournal("far")))


В случае, если появляется надпись "It is too far away", чар перестает копать и стоит.


Top
   
PostPosted: 2013-02-04 10:35:34 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
klim_killer wrote:
Вроде нашел, на чем стопиться скрипт:

Маладэц.
А теперь прочитай что я написал чуть выше.

_________________
Image
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"
Стрелялка для олдов.


Top
   
PostPosted: 2013-02-04 10:48:10 
Offline

Joined: 2006-03-27 00:03:20
Posts: 20
Mirage, я не до конца понял, что ты написал, т.к. на других серверах, кроме зулу почти не играл. Особенности шарда: Бесконечный автолуп (в случае с минингом, до того момента, как все выкопаешь, либо фэйл случится. В обоих случаях, в конце появится сообщение: You stop mining). В шахте, где я копаю, атачить нельзя(Anti harm Area). Т.О. стоп копанию будет в каждом тайле. Армслор задействуется только в случае, когда закончились Кирки. Но вот почему в 2-х местах периодически появляется надпись It is too far away, я не знаю. И почему то мой скрипт на нее не реагирует.
Сегодня пришла мысль, запустить отдельный скрипт:
Code:
sub main()
   while not uo.dead()
      if uo.injournal('far') then
       uo.say('Stop mining')
       wait(500)
      else
       wait(500)
      end if
   wend
end sub

Или я чего то не понимаю?

Просто в моем понимании, сейчас, скрипт реагирует на надпись stop, но не реагирует на надпись far. Или я просто туплю?


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 12 posts ] 

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 26 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:  
cron
Powered by phpBB® Forum Software © phpBB Limited