Code: Select all
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