Yoko
http://forum.yoko.com.ua/

Помогите разобраться с минингом
http://forum.yoko.com.ua/viewtopic.php?f=17&t=17183
Page 1 of 1

Author:  klim_killer [ 2013-01-31 16:01:59 ]
Post subject:  Помогите разобраться с минингом

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

Author:  klim_killer [ 2013-02-01 14:56:00 ]
Post subject:  Re: Помогите разобраться с минингом

Вроде нашел ошибку, и буду тестить сегодня:
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

Author:  Mirage [ 2013-02-01 15:10:48 ]
Post subject:  Re: Помогите разобраться с минингом

Не плохо бы еще озвучивать вопрос чтобы получить ответ ;)

Author:  klim_killer [ 2013-02-02 08:55:21 ]
Post subject:  Re: Помогите разобраться с минингом

Постоянно крашит скрипт... мое решение оказалось неверным).

Author:  Mirage [ 2013-02-02 11:00:31 ]
Post subject:  Re: Помогите разобраться с минингом

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 нет в скрипте.

Author:  klim_killer [ 2013-02-02 12:05:46 ]
Post subject:  Re: Помогите разобраться с минингом

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).

Author:  Mirage [ 2013-02-02 15:19:53 ]
Post subject:  Re: Помогите разобраться с минингом

чар ударил киркой и ждет сообщения в журнале пока не пролетит следующие сообщения:
Code:
      while (not (UO.InJournal("stop mining") or UO.InJournal("far")))
         wait(1000)
         ArmsLore()
      wend

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

Author:  klim_killer [ 2013-02-02 15:50:55 ]
Post subject:  Re: Помогите разобраться с минингом

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

Author:  ZeroDX [ 2013-02-03 10:31:11 ]
Post subject:  Re: Помогите разобраться с минингом

Code:
uo.exec("usetype '0x0E85'")

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

Author:  klim_killer [ 2013-02-04 10:30:52 ]
Post subject:  Re: Помогите разобраться с минингом

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


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

Author:  Mirage [ 2013-02-04 10:35:34 ]
Post subject:  Re: Помогите разобраться с минингом

klim_killer wrote:
Вроде нашел, на чем стопиться скрипт:

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

Author:  klim_killer [ 2013-02-04 10:48:10 ]
Post subject:  Re: Помогите разобраться с минингом

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. Или я просто туплю?

Page 1 of 1 All times are UTC+02:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/