Знатоки помогите пожалуйста,нужно сделать так когда в ручную останавливаешь макрос при повторном включении он шел и капал тот тайл на котором был выключен,а то очень тяжко когда выкапываешь елема приходиться вырубать,убивать его и начинать заного обходить все тайлы??? !!!!
Code: sub collecting()
var i,s=0,flag=0 var f=file("D:\_GAMES\Ultima Online\Inject\rock.txt") dim RockX[500],RockY[500],RockT[500] var Count=0
while not flag ==1 uo.usetype ('0x0E85') WaitForTarget() while uo.targeting() wait(100) wend if uo.LastTile(1)==UO.GetX("self") then if uo.lastTile(2)==UO.GetY("self") then flag=1 endif endif
if flag == 0 then RockX[Count]=uo.LastTile(1) RockY[Count]=uo.lastTile(2) RockT[Count]=uo.LastTile(0) uo.print('Íàéäåíà êî÷êà ¹ '+str(count)+': x='+str(uo.lasttile(1))+' y='+str(uo.lastTile(2)))
Count = Count+1 endif wend
uo.print ("Íàéäåíî " + str(Count) + " êî÷åê") ################################################# ################Çàïèñü â ôàéë#################### #################################################
f.open() f.create() s=safe call f.writeln(Count) for i=0 to Count-1 s=safe call f.writeln(str(RockT[i])+' '+str(RockX[i])+' '+str(RockY[i])) next f.close()
################################################# ################################################# #################################################
end sub
################################################# ################################################# ################################################# ################################################# ################################################# #################################################
sub mining()
var i,flag,j var Count var f=file("D:\_GAMES\Ultima Online\Inject\rock.txt") dim RockX[500],RockY[500],RockT[500] uo.deletejournal()
################################################# ###############Çàãðóæàåì èç ôàéëà################ #################################################
uo.print('Çàãðóæàåì êîîðäèíàòû èç ôàéëà...') f.open() Count=safe call f.readNumber()
uo.print("Çàãðóæåíî "+str(Count)+ " êî÷åê")
for i=0 to Count-1 RockT[i]=safe call f.ReadNumber() RockX[i]=safe call f.ReadNumber() RockY[i]=safe call f.ReadNumber() next f.close()
################################################# ###############Õîäèì ïî êîîðäèíàòàì############## #################################################
while UO.Weight<650 uo.deletejournal() if Count>0 then for i=0 to Count-1 flag=0 j=0 uo.print('Èäåì ê êî÷êå '+str(i)+': x='+str(Rockx[i])+' y='+str(RockY[i]))
while not flag==1 flag=gotoxy(RockX[i],RockY[i]) wait (1000) wend uo.deletejournal() GetRock(str(RockT[i]),str(RockX[i]),str(RockY[i]),str(uo.getz())) next endif wend
uo.print ("Âûêîïàíî")
end sub
##################################################################
sub GetRock(tile,x,y,z)
uo.print('Íà÷èíàåì êîïêó...')
while not UO.InJournal("Try") and not UO.InJournal("location") and not UO.InJournal("Ïîïðîáóéòå") and not UO.InJournal("far away") and not UO.InJournal("There is nothing here to mine for.") and not UO.InJournal ("Òóò íå îñòàëîñü ðóäû") and not UO.InJournal("äîòÿíóòüñÿ") and not UO.InJournal("You put the iron ores in your pack.")and not UO.InJournal ("You cannot mine so close to yourself.") uo.deletejournal() UO.Waittargettile(tile,x,y,z) uo.print ("Èñïîëüçóåì êèðêó...") UO.Usetype("0x0E85") while not UO.InJournal("You put") and not UO.InJournal("location") and not UO.InJournal("Ïîïðîáóéòå") and not UO.InJournal("äîòÿíóòüñÿ") and not UO.InJournal("There is nothing here to mine for.") and not UO.InJournal ("Òóò íå îñòàëîñü ðóäû") and not UO.InJournal("but fail") and not UO.InJournal("nothing") and not UO.InJournal("Try") and not UO.InJournal("You put the iron ores in your pack.") and not UO.InJournal ("You cannot mine so close to yourself.") wait (1000) wend wend
end sub ########################################## #############Äîïîëíèòåëüíûå############### ################Ôóíêöèè################### ##########################################
sub abs(num) if num>=0 then return num else return num*(-1) end if end sub
sub gotoXY(x,y) var myX,myY,lastX=0,lastY=0,i,halt=0,z,r=0 for i=1 to 60 MyX=uo.getX(); MyY=uo.getY(); if LastX==MyX AND LastY==MyY then halt=halt+1 else halt=0 end if if halt>=10 then if uo.GetDir()==1 then for z=0 to 8 uo.press(40) next end if if uo.GetDir()==3 then for z=0 to 8 uo.press(37) next end if if uo.GetDir()==5 then for z=0 to 8 uo.press( 38 ) next end if if uo.GetDir()==7 then for z=0 to 8 uo.press(39) next end if halt=15 end if if abs(x-myX)<=1 AND abs(y-myY)<=2 then return 1 end if if x<=MyX then if y<=MyY then for z=0 to 3 uo.press( 38 ) next else for z=0 to 3 uo.press(37) next end if else if y<=MyY then for z=0 to 3 uo.press(39) next else for z=0 to 3 uo.press(40) next end if end if lastX=myX lastY=myY wait(200) next return 0 end sub
sub WaitForTarget() for var i=0 to 50 if uo.Targeting()==1 then return 1 end if wait(200) next return 0 end sub
|