Проверьте плиз такой кусочек ...

Ask for help

Moderators: Murderator+, Murderator

Post Reply
gmur
Posts: 141
Joined: 2004-07-18 13:01:15
Contact:

Проверьте плиз такой кусочек ...

Post by gmur »

Code: Select all

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
У меня на шарде если копать Билдер лопатой выскакивают булыжники которые можно переработать в стоун блоки удар кирки по ним, вот я написал такой скриптик, подскажите плиз в чём ошибка ? Он не хочет ловить сообщение о появлении булыжника в паке, и соответственно не выполняет удар по ниму киркой..
Помогите плиз, я уже всё перепробовал ни как сам разобраться не могу %(
Sfagnum
Expert!
Posts: 1284
Joined: 2004-07-04 00:14:58
Contact:

Re: Проверьте плиз такой кусочек ...

Post by Sfagnum »

Code: Select all

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() - я понял, что там ты входишь в хайд - на "перед каждым юзом лопаты"
gmur
Posts: 141
Joined: 2004-07-18 13:01:15
Contact:

Post by gmur »

Спасибо большое за помощь, теперь всё пашет как надо, топик можно закрывать :)
Post Reply