Code:
sub mine(PX,PY)
var x, y,z
VAR LastTimer
UO.Set('finddistance','2')
z=UO.GetZ("self")
for x=-2 to 2
for y=-2 to 2
UO.Print(str(x)+" "+str(y))
Repeat
Hid()
if UO.InJournal('TORMOZ') then
pause()
endif
UO.DeleteJournal()
UO.Exec("warmode 0") ## зачем???
UO.WaitTargetTile("1341",STR(UO.GetX()+x),STR(UO.GetY()+Y),z)
UO.UseType('0x0F39')
LastTimer=UO.Timer()
Repeat
wait(500)
Until UO.InJournal("You put") or UO.InJournal("can't see") or UO.InJournal("heavy") or UO.InJournal("location") or UO.InJournal("no ore") or UO.InJournal("but fail") or UO.InJournal("far away") or UO.InJournal("in rock") or UO.InJournal("must wait") or UO.InJournal("nothing") or UO.InJournal("elsewhere") or UO.InJournal("where it") OR UO.Timer()>LastTimer+200
if UO.InJournal("You put the boulder") then
UO.findtype('0x134F',-1,'ground')
if UO.FindCount()>0 then
UO.waittargetground('0x134F') ## на 'finditem' переделай
UO.UseType('0x0E85') ;
wait(500)
else
UO.findtype('0x134F',-1,-1)
if UO.FindCount()>0 then
UO.WaitTargetType('0x134F') ## на 'finditem' переделай
UO.UseType('0x0E85') ;?????
wait(500)
endif
endif
endif
if UO.Weight>720 then
unload(PX,PY)
endif
lookout()
Until UO.InJournal("nothing") or UO.InJournal("elsewhere") or UO.InJournal("no ore here") or UO.InJournal("location") or UO.InJournal("far away") or UO.InJournal("in rock") or UO.InJournal("where it")
wait(500)
next
next
end sub
ты просматривай журнал сразу после выкапывания, а не после того как всё "гнездо" выкопаешь, т.к. с большой вероятностью данная строка уже покинет журнал
ЗЫ я тебе контроль за весом сдвинул, на "после каждого юза лопаты", и Hid() - я понял, что там ты входишь в хайд - на "перед каждым юзом лопаты"