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 Hid() UO.Print(str(x)+" "+str(y)) Repeat 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 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 if UO.InJournal("You put the boulder") then UO.findtype('0x134F',-1,'ground') if UO.FindCount()>0 then UO.waittargetground('0x134F') UO.UseType('0x0E85') ; wait(500) else UO.findtype('0x134F',-1,-1) if UO.FindCount()>0 then UO.WaitTargetType('0x134F') UO.UseType('0x0E85') ;????? wait(500) endif endif endif if UO.Weight>720 then unload(PX,PY) endif end sub
У меня на шарде если копать Билдер лопатой выскакивают булыжники которые можно переработать в стоун блоки удар кирки по ним, вот я написал такой скриптик, подскажите плиз в чём ошибка ? Он не хочет ловить сообщение о появлении булыжника в паке, и соответственно не выполняет удар по ниму киркой..
Помогите плиз, я уже всё перепробовал ни как сам разобраться не могу %(
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() - я понял, что там ты входишь в хайд - на "перед каждым юзом лопаты"