Page 1 of 1
Помогите разобраться с минингом
Posted: 2013-01-31 16:01:59
by klim_killer
Code: Select all
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
Re: Помогите разобраться с минингом
Posted: 2013-02-01 14:56:00
by klim_killer
Вроде нашел ошибку, и буду тестить сегодня:
Code: Select all
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
Re: Помогите разобраться с минингом
Posted: 2013-02-01 15:10:48
by Mirage
Не плохо бы еще озвучивать вопрос чтобы получить ответ

Re: Помогите разобраться с минингом
Posted: 2013-02-02 08:55:21
by klim_killer
Постоянно крашит скрипт... мое решение оказалось неверным).
Re: Помогите разобраться с минингом
Posted: 2013-02-02 11:00:31
by Mirage
Code: Select all
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: Select all
while (not (UO.InJournal("stop mining") or UO.InJournal("far")))
wait(1000)
ArmsLore()
wend
не имеет смысла потому что сообщения
stop mining не будет. Застрянет в вечном цикле. У тебя нет таймера для выхода из циклов.
По крайней мере так на серверах где я играл.
PS процедуры
InfoLogs нет в скрипте.
Re: Помогите разобраться с минингом
Posted: 2013-02-02 12:05:46
by klim_killer
Code: Select all
while (not (UO.InJournal("stop mining") or UO.InJournal("far")))
wait(1000)
ArmsLore()
wend
Я вчера тоже так подумал, но. Данная процедура while идет сразу после попытки копать. Соответственно, пока есть кирки, он будет просто ждать по одной секунде, пока не выкопает всю руду. Потом копнет в след. тайле. Проверка количества кирок нужна для того, что бы в случае, если они закончились, начал качаться армслор.
Code: Select all
sub InfoLogs()
uo.Print('Ó âàñ âñåãî '+str(uo.Count('0x19B9'))+' áóäóùèõ èíãîòîâ')
uo.Print('Îñòàëîñü '+str(uo.Count('0x0E85'))+' êèðîê')
end sub
Причем если виснит скрипт (перестает копать, или просто крашит клиент), то происходит это по всей видимости на 5-м шаге (i=5).
Re: Помогите разобраться с минингом
Posted: 2013-02-02 15:19:53
by Mirage
чар ударил киркой и ждет сообщения в журнале пока не пролетит следующие сообщения:
Code: Select all
while (not (UO.InJournal("stop mining") or UO.InJournal("far")))
wait(1000)
ArmsLore()
wend
Из этого цикла чар выйдет. Потому что ожидаются сообщения - "по каким то причинам перестал копать" и "это далеко". Далеко это быть не может - координаты же прописаны, а стоп копанию может быть если армслора задействуется или ктото нападет. => вечный цикл.
Re: Помогите разобраться с минингом
Posted: 2013-02-02 15:50:55
by klim_killer
Играю на зулу. Стоит автолуп(на сервере), когда чар выкапывает все что можно в определенном месте, либо фэйл копания, выдается сообщение, "You stop mining."
Re: Помогите разобраться с минингом
Posted: 2013-02-03 10:31:11
by ZeroDX
почему народ стал использовать такую форму вызова функций?
Re: Помогите разобраться с минингом
Posted: 2013-02-04 10:30:52
by klim_killer
Вроде нашел, на чем стопиться скрипт:
Code: Select all
while (not (UO.InJournal("stop mining") or UO.InJournal("far")))
В случае, если появляется надпись "It is too far away", чар перестает копать и стоит.
Re: Помогите разобраться с минингом
Posted: 2013-02-04 10:35:34
by Mirage
klim_killer wrote:Вроде нашел, на чем стопиться скрипт:
Маладэц.
А теперь прочитай что я написал чуть выше.
Re: Помогите разобраться с минингом
Posted: 2013-02-04 10:48:10
by klim_killer
Mirage, я не до конца понял, что ты написал, т.к. на других серверах, кроме зулу почти не играл. Особенности шарда: Бесконечный автолуп (в случае с минингом, до того момента, как все выкопаешь, либо фэйл случится. В обоих случаях, в конце появится сообщение: You stop mining). В шахте, где я копаю, атачить нельзя(Anti harm Area). Т.О. стоп копанию будет в каждом тайле. Армслор задействуется только в случае, когда закончились Кирки. Но вот почему в 2-х местах периодически появляется надпись It is too far away, я не знаю. И почему то мой скрипт на нее не реагирует.
Сегодня пришла мысль, запустить отдельный скрипт:
Code: Select all
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. Или я просто туплю?