View Categories

Lumberjacking

17 min read

Details #

All scripts have been collected over the years and if available will still contain the creators details, these scripts may run well or not.

Scripts #

lj+arms.sc #

Note: Script file create date 26/03/2003 This script has been added for archival purposes, it was created prior to the use of objects in scripts (limited scripting knowledge) and relied on the UO.Click function which was very unreliable.

sub main()
aaa:
     UO.Exec("usetype axe")
     wait(1000)
     UO.LClick(398,186)
     wait(7000)
     UO.Exec("waittargetobject 'dagger'")
     UO.Exec("useskill 'Arms Lore'")
     wait(3000)
     
 UO.Exec("usetype axe")
     wait(1000)
     UO.LClick(420,208)
    wait(7000)
     UO.Exec("waittargetobject 'dagger'")
     UO.Exec("useskill 'Arms Lore'")
     wait(3000)
     
 UO.Exec("usetype axe")
     wait(1000)
     UO.LClick(377,207)
   wait(7000)
     UO.Exec("waittargetobject 'dagger'")
     UO.Exec("useskill 'Arms Lore'")
     wait(3000)
    
 UO.Exec("usetype axe")
     wait(1000)
     UO.LClick(400,231)
     wait(7000)
     UO.Exec("waittargetobject 'dagger'")
     UO.Exec("useskill 'Arms Lore'")
     wait(3000)
       
 UO.Exec("usetype axe")
     wait(1000)
     UO.LClick(354,230)
      wait(7000)
     UO.Exec("waittargetobject 'dagger'")
     UO.Exec("useskill 'Arms Lore'")
     wait(3000)
      #######################################
 
    UO.Exec("usetype axe")
     wait(1000)
     UO.LClick(376,253)
     wait(7000)
     UO.Exec("waittargetobject 'dagger'")
     UO.Exec("useskill 'Arms Lore'")
     wait(3000)
     
 UO.Exec("usetype axe")
     wait(1000)
     UO.LClick(354,275)
    wait(7000)
     UO.Exec("waittargetobject 'dagger'")
     UO.Exec("useskill 'Arms Lore'")
     wait(3000)
     
 UO.Exec("usetype axe")
     wait(1000)
     UO.LClick(465,296)
   wait(7000)
     UO.Exec("waittargetobject 'dagger'")
     UO.Exec("useskill 'Arms Lore'")
     wait(3000)
    
 UO.Exec("usetype axe")
     wait(1000)
     UO.LClick(442,318)
     wait(7000)
     UO.Exec("waittargetobject 'dagger'")
     UO.Exec("useskill 'Arms Lore'")
     wait(3000)
       
 UO.Exec("usetype axe")
     wait(1000)
     UO.LClick(421,341)
      wait(7000)
     UO.Exec("waittargetobject 'dagger'")
     UO.Exec("useskill 'Arms Lore'")
     wait(3000)
  #######################################
  ##################################  
goto aaa
end sub

lj.sc #

################################
#corsairs el leeto mining script
#use recordpath to record a MoveArrayX/Y array
#
###############################
sub main()
var ArraySize=126,MyX,MyY,i
dim MoveArrayX[126]
dim MoveArrayY[126]

MoveArrayX[0]=2367
MoveArrayY[0]=194
MoveArrayX[1]=2368
MoveArrayY[1]=194
MoveArrayX[2]=2369
MoveArrayY[2]=194
MoveArrayX[3]=2370
MoveArrayY[3]=194
MoveArrayX[4]=2371
MoveArrayY[4]=194
MoveArrayX[5]=2372
MoveArrayY[5]=194
MoveArrayX[6]=2372
MoveArrayY[6]=195
MoveArrayX[7]=2371
MoveArrayY[7]=195
MoveArrayX[8]=2370
MoveArrayY[8]=195
MoveArrayX[9]=2369
MoveArrayY[9]=195
MoveArrayX[10]=2368
MoveArrayY[10]=195
MoveArrayX[11]=2367
MoveArrayY[11]=195
MoveArrayX[12]=2367
MoveArrayY[12]=196
MoveArrayX[13]=2368
MoveArrayY[13]=196
MoveArrayX[14]=2369
MoveArrayY[14]=196
MoveArrayX[15]=2370
MoveArrayY[15]=196
MoveArrayX[16]=2371
MoveArrayY[16]=196
MoveArrayX[17]=2372
MoveArrayY[17]=196
MoveArrayX[18]=2372
MoveArrayY[18]=197
MoveArrayX[19]=2371
MoveArrayY[19]=197
MoveArrayX[20]=2370
MoveArrayY[20]=197
MoveArrayX[21]=2369
MoveArrayY[21]=197
MoveArrayX[22]=2368
MoveArrayY[22]=197
MoveArrayX[23]=2367
MoveArrayY[23]=197
MoveArrayX[24]=2367
MoveArrayY[24]=198
MoveArrayX[25]=2368
MoveArrayY[25]=198
MoveArrayX[26]=2369
MoveArrayY[26]=198
MoveArrayX[27]=2370
MoveArrayY[27]=198
MoveArrayX[28]=2371
MoveArrayY[28]=198
MoveArrayX[29]=2372
MoveArrayY[29]=198
MoveArrayX[30]=2372
MoveArrayY[30]=199
MoveArrayX[31]=2371
MoveArrayY[31]=199
MoveArrayX[32]=2370
MoveArrayY[32]=199
MoveArrayX[33]=2369
MoveArrayY[33]=199
MoveArrayX[34]=2368
MoveArrayY[34]=199
MoveArrayX[35]=2368
MoveArrayY[35]=200
MoveArrayX[36]=2369
MoveArrayY[36]=200
MoveArrayX[37]=2370
MoveArrayY[37]=200
MoveArrayX[38]=2371
MoveArrayY[38]=200
MoveArrayX[39]=2372
MoveArrayY[39]=200
MoveArrayX[40]=2372
MoveArrayY[40]=201
MoveArrayX[41]=2371
MoveArrayY[41]=201
MoveArrayX[42]=2370
MoveArrayY[42]=201
MoveArrayX[43]=2369
MoveArrayY[43]=201
MoveArrayX[44]=2368
MoveArrayY[44]=201
MoveArrayX[45]=2368
MoveArrayY[45]=202
MoveArrayX[46]=2369
MoveArrayY[46]=202
MoveArrayX[47]=2370
MoveArrayY[47]=202
MoveArrayX[48]=2371
MoveArrayY[48]=202
MoveArrayX[49]=2372
MoveArrayY[49]=202
MoveArrayX[50]=2372
MoveArrayY[50]=203
MoveArrayX[51]=2371
MoveArrayY[51]=203
MoveArrayX[52]=2370
MoveArrayY[52]=203
MoveArrayX[53]=2369
MoveArrayY[53]=203
MoveArrayX[54]=2368
MoveArrayY[54]=203
MoveArrayX[55]=2368
MoveArrayY[55]=204
MoveArrayX[56]=2367
MoveArrayY[56]=204
MoveArrayX[57]=2368
MoveArrayY[57]=204
MoveArrayX[58]=2369
MoveArrayY[58]=204
MoveArrayX[59]=2370
MoveArrayY[59]=204
MoveArrayX[60]=2371
MoveArrayY[60]=204
MoveArrayX[61]=2372
MoveArrayY[61]=204
MoveArrayX[62]=2372
MoveArrayY[62]=205
MoveArrayX[63]=2371
MoveArrayY[63]=205
MoveArrayX[64]=2370
MoveArrayY[64]=205
MoveArrayX[65]=2369
MoveArrayY[65]=205
MoveArrayX[66]=2368
MoveArrayY[66]=205
MoveArrayX[67]=2367
MoveArrayY[67]=205
MoveArrayX[68]=2367
MoveArrayY[68]=204
MoveArrayX[69]=2368
MoveArrayY[69]=204
MoveArrayX[70]=2369
MoveArrayY[70]=204
MoveArrayX[71]=2370
MoveArrayY[71]=204
MoveArrayX[72]=2371
MoveArrayY[72]=204
MoveArrayX[73]=2372
MoveArrayY[73]=204
MoveArrayX[74]=2372
MoveArrayY[74]=203
MoveArrayX[75]=2371
MoveArrayY[75]=203
MoveArrayX[76]=2370
MoveArrayY[76]=203
MoveArrayX[77]=2369
MoveArrayY[77]=203
MoveArrayX[78]=2368
MoveArrayY[78]=203
MoveArrayX[79]=2368
MoveArrayY[79]=202
MoveArrayX[80]=2369
MoveArrayY[80]=202
MoveArrayX[81]=2370
MoveArrayY[81]=202
MoveArrayX[82]=2371
MoveArrayY[82]=202
MoveArrayX[83]=2372
MoveArrayY[83]=202
MoveArrayX[84]=2372
MoveArrayY[84]=201
MoveArrayX[85]=2371
MoveArrayY[85]=201
MoveArrayX[86]=2370
MoveArrayY[86]=201
MoveArrayX[87]=2369
MoveArrayY[87]=201
MoveArrayX[88]=2368
MoveArrayY[88]=201
MoveArrayX[89]=2368
MoveArrayY[89]=200
MoveArrayX[90]=2369
MoveArrayY[90]=200
MoveArrayX[91]=2370
MoveArrayY[91]=200
MoveArrayX[92]=2371
MoveArrayY[92]=200
MoveArrayX[93]=2372
MoveArrayY[93]=200
MoveArrayX[94]=2372
MoveArrayY[94]=199
MoveArrayX[95]=2371
MoveArrayY[95]=199
MoveArrayX[96]=2370
MoveArrayY[96]=199
MoveArrayX[97]=2369
MoveArrayY[97]=199
MoveArrayX[98]=2368
MoveArrayY[98]=199
MoveArrayX[99]=2368
MoveArrayY[99]=198
MoveArrayX[100]=2367
MoveArrayY[100]=198
MoveArrayX[101]=2368
MoveArrayY[101]=198
MoveArrayX[102]=2369
MoveArrayY[102]=198
MoveArrayX[103]=2370
MoveArrayY[103]=198
MoveArrayX[104]=2371
MoveArrayY[104]=198
MoveArrayX[105]=2372
MoveArrayY[105]=198
MoveArrayX[106]=2372
MoveArrayY[106]=197
MoveArrayX[107]=2372
MoveArrayY[107]=196
MoveArrayX[108]=2372
MoveArrayY[108]=197
MoveArrayX[109]=2371
MoveArrayY[109]=197
MoveArrayX[110]=2370
MoveArrayY[110]=197
MoveArrayX[111]=2369
MoveArrayY[111]=197
MoveArrayX[112]=2368
MoveArrayY[112]=197
MoveArrayX[113]=2367
MoveArrayY[113]=197
MoveArrayX[114]=2367
MoveArrayY[114]=196
MoveArrayX[115]=2368
MoveArrayY[115]=196
MoveArrayX[116]=2369
MoveArrayY[116]=196
MoveArrayX[117]=2370
MoveArrayY[117]=196
MoveArrayX[118]=2371
MoveArrayY[118]=196
MoveArrayX[119]=2372
MoveArrayY[119]=196
MoveArrayX[120]=2372
MoveArrayY[120]=195
MoveArrayX[121]=2371
MoveArrayY[121]=195
MoveArrayX[122]=2370
MoveArrayY[122]=195
MoveArrayX[123]=2369
MoveArrayY[123]=195
MoveArrayX[124]=2368
MoveArrayY[124]=195
MoveArrayX[125]=2367
MoveArrayY[125]=195
MoveArrayX[126]=2367
MoveArrayY[126]=194

start:
	for i=0 to ArraySize		

		if MoveArrayX[i] AND MoveArrayY[i] then
			gotoxy(MoveArrayX[i],MoveArrayY[i])
			rapetiles()
		endif

		wait(50)
	next

goto start
end sub

sub randomxy(num,myx,myy)
	myx=myx
	myy=myy
	return str(myx)+" "+str(myy)+" 66"
end sub

sub gotoxy(x,y) 
var prec=0
var ld=0,ldc=0 
var dx,dy 
var mx,my 
var ox,oy,mk,k 
var mDelay=150 			#delay for sending steps
#uo.print(">") 
#uo.track("1",str(x),str(y)) 
start: 
mx=UO.GetX() 
my=UO.GetY() 
dx=mx-x 
if dx<0 then 
dx=0-dx 
endif 
dy=my-y 
if dy<0 then 
dy=0-dy 
endif 
if dy>dx then 
dx=dy 
end if 
if dx<=prec then 
return 
end if 
if not ldc then 
#uo.print(STR(dx)) 
end if 
if dx<3 then 
mk=70 
else 
mk=15 
end if 

ox=mx 
oy=my 
for k=1 to mk 
mx=UO.GetX() 
my=UO.GetY() 
if mx<>ox or my<>oy then 
goto sdidapl 
end if 
wait(10) 
next 
sdidapl: 

mx=UO.GetX() 
my=UO.GetY() 
dx=mx-x 
if dx<0 then 
dx=0-dx 
endif 
dy=my-y 
if dy<0 then 
dy=0-dy 
endif 
if dy>dx then 
dx=dy 
end if 

if dx<=prec then 
return 
end if 
if ld==dx then 
ldc=ldc+1 
if ldc>100 then 
uo.print("Can not reach location!") 
return 
end if 
else 
ld=dx 
end if 

if mx==x then 
if my==y then 
return 
endif 
if my>y then 
#UO.Print("UR") 
UO.Press(33) 
goto start 
endif 
#UO.Print("DL") 
UO.Press(35) 
goto start 
end if 
if mx<x then 
if my>y then 
#UO.Print("R") 
UO.Press(39) 
goto start 
endif 
if my==y then 
#UO.Print("DR") 
UO.Press(34) 
goto start 
endif 
#UO.Print("D") 
UO.Press(40) 
goto start 
end if 
if my<y then 
#UO.Print("L") 
UO.Press(37) 
goto start 
endif 
if my==y then 
#UO.Print("LU") 
UO.Press(36) 
goto start 
endif 
#UO.Print("U") 
UO.Press(38) 
goto start 
end sub 

sub recordarray()
	UO.Print("1. Try to avoid impassable objects like stalagmites by staying away by 2 tiles")
	UO.Print("2. It is good idea to walk back to original start location or close to it to avoid script stuff ups")
	UO.Print("3. Tile array is output to text dialog")
	UO.TextOpen()
	var mX,mY,lX,lY,count=0
	UO.DeleteJournal()
	
	repeat
		wait(10)
		mX=UO.GetX()
		mY=UO.GetY()
		
			if lX<>mX AND lY<>mY OR lX<>mX OR lY<>mY then
				UO.TextPrint("MoveArrayX["+str(count)+"]="+str(mX))
				UO.TextPrint("MoveArrayY["+str(count)+"]="+str(mY))
				count=count+1
			endif
			
			
			
		lX=mX
		lY=mY
		
		
	until UO.InJournal("stop")
end sub

sub rapetiles()

	var mx,my,string,count=0
	mx=UO.GetX()
	my=UO.GetY()

	


		string=randomxy(count,mx,my)
		rapetile(string)
		wait(100)
		


	
end sub

sub mineonce(string)
	var fcount,MyHand
	
	UO.DeleteJournal()
	
	UO.Exec("waittargettile 3300 "+string)

	MyHand=UO.ObjAtLayer('Lhand')
								if MyHand=='' then
								UO.UseType("0x0F47")
								else
								UO.UseObject(MyHand)
								endif
	
	fcount=UO.FindCount()
	
	repeat
	wait(100)
	until UO.InJournal("aborted") OR UO.InJournal("finished") OR UO.InJournal("Reconnected.") OR UO.InJournal("too far") OR UO.InJournal("Welcome to Ultima Online!") 
end sub

sub rapetile(string)

	repeat
	mineonce(string)
	wait(250)
	until UO.InJournal("no wood") OR UO.InJournal("Reconnected.") OR UO.InJournal("too far") OR UO.InJournal("Welcome to Ultima Online!")
	
	
	wait(250)
end sub



sub guard()
#used for ignoring portals that are cast in the mines
var fcount=0
var ArraySize=9
var n
dim BadTypes[9]
BadTypes[0]="0x0F6C"
BadTypes[1]="0x1FD4"
BadTypes[2]="0x3967"
BadTypes[3]="0x3979"
BadTypes[4]="0x3914"
BadTypes[5]="0x3920"
BadTypes[6]="0x3955"
BadTypes[7]="0x3946"
BadTypes[8]="0x398c"
BadTypes[9]="0x3996"
UO.Exec("set finddistance 1")
start:


for n=0 to ArraySize

	UO.Exec("findtype "+BadTypes[n]+" 0x0000 ground")
	fcount=UO.FindCount()
	
	if fcount>=1 then
	
		uo.exec("moveoff")
		
			repeat
				UO.Exec("findtype "+BadTypes[n]+" 0x0000 ground")
				fcount=UO.FindCount()	
				wait(1000)
			until fcount==0
	endif

	

next

UO.Exec("moveon")
wait(500)
goto start

end sub

sub gself()

var lastcall
var minhp=4 #max hp to lose before gwhacking
var lifelost

start:

While UO.life==UO.STR or UO.Life==UO.STR-1 or UO.Life==UO.STR-2 or UO.Life==UO.STR-3
wait(100)
wend

lifelost=UO.STR-UO.Life

if lifelost<=minhp then
UO.ServerPrint(".guards")
uo.print("gwhacking!")
wait(30000)
else
goto start

endif
goto start
end sub

lj north south.sc #

Note: Script file create date 26/03/2003 This script has been added for archival purposes, it was created prior to the use of objects in scripts (limited scripting knowledge) and relied on the UO.Click function which was very unreliable.

ub main() 
var mloop
var walkback 
mloop=0 
walkback=0 
start: 

if mloop<=1 then #less than  
UO.Exec('usetype axe')    
wait(2500)
UO.LClick(423,255) 
mloop=mloop+1 
wait(8500) 
end if 

if mloop>=1 then #greater than
UO.Press(33) 
wait(1500) 
mloop=0 
walkback=walkback+1 
end if 

if walkback>=10 then #greater than or equil to

UO.Press(35) 
UO.Exec('usetype axe')    
wait(2000)
UO.LClick(421,297) 
wait(8000)

UO.Press(35) 
UO.Exec('usetype axe')    
wait(2000)
UO.LClick(421,297) 
wait(8000)

UO.Press(35) 
UO.Exec('usetype axe')    
wait(2000)
UO.LClick(421,297) 
wait(8000)

UO.Press(35) 
UO.Exec('usetype axe')    
wait(2000)
UO.LClick(421,297) 
wait(8000)

UO.Press(35) 
UO.Exec('usetype axe')    
wait(2000)
UO.LClick(421,297) 
wait(8000)

UO.Press(35) 
UO.Exec('usetype axe')    
wait(2000)
UO.LClick(421,297) 
wait(8000)

UO.Press(35) 
UO.Exec('usetype axe')    
wait(2000)
UO.LClick(421,297) 
wait(8000)

UO.Press(35) 
UO.Exec('usetype axe')    
wait(2000)
UO.LClick(421,297) 
wait(8000)

UO.Press(35) 
UO.Exec('usetype axe')    
wait(2000)
UO.LClick(421,297) 
wait(8000)

UO.Press(35) 
UO.Exec('usetype axe')    
wait(2000)
UO.LClick(421,297) 
wait(8000)

walkback=0 
end if 

GOTO start 
end sub 

lumber2.sc #

sub main()
	var axeType = 0x0F43

	UO.Set("finddistance",2)	
	UO.Set("quiet", 0)

	UO.FindType(0x0d38, -1, 'ground')
	var count = UO.FindCount()
	
	var i = 0
	var time = 0
	
	dim trees[val(str(count))]

	For i = 0 To count
		UO.FindType(0x0d38, -1, 'ground')	
		trees[i] = UO.GetSerial('finditem')
		UO.Ignore('finditem')
	Next
	
	UO.IgnoreReset()
	UO.Print( "Found and stored " + str(count) + " trees. Now Lumbering..." )
	UO.Set("quiet", 1)
	
	Repeat
		For i = 0 To count		
			UO.WaitTargetObject(trees[i])
			UO.UseType(axeType)
			
			journalWait("looping|aborted", 10000)
		Next
	Until False
end sub

sub journalWait(journalPattern, timeOut)
	var time = 0
		
	UO.DeleteJournal()
	
	Repeat
		time = time + 50
		UO.Wait(50)
	Until UO.InJournal(journalPattern) || time > timeOut
end sub

Lumber.sc #

Note: Script file create date 26/03/2003 This script has been added for archival purposes, it was created prior to the use of objects in scripts (limited scripting knowledge) and relied on the UO.Click function which was very unreliable.

sub main()
La:
	UO.UseType(0x13fa)
	Wait(1000)
	UO.LClick(296,241)
	UO.LClick(296,241)
	UO.LClick(296,241)
	Wait(7000)
	UO.Press(37)
	UO.Press(37)
	UO.UseType(0x13fa)
	Wait(1000)
	UO.LClick(296,241)
	UO.LClick(296,241)
	UO.LClick(296,241)
	Wait(7000)
	UO.Press(37)
	UO.UseType(0x13fa)
	Wait(1000)
	UO.LClick(296,241)
	UO.LClick(296,241)
	UO.LClick(296,241)
	Wait(7000)
	UO.Press(37)
	UO.UseType(0x13fa)
	Wait(1000)
	UO.LClick(296,241)
	UO.LClick(296,241)
	UO.LClick(296,241)
	Wait(7000)
	UO.Press(37)
	UO.UseType(0x13fa)
	Wait(1000)
	UO.LClick(296,241)
	UO.LClick(296,241)
	UO.LClick(296,241)
	Wait(7000)
	UO.Press(37)
	UO.UseType(0x13fa)
	Wait(1000)
	UO.LClick(296,241)
	UO.LClick(296,241)
	UO.LClick(296,241)
	Wait(7000)
	UO.Press(37)
	UO.UseType(0x13fa)
	Wait(1000)
	UO.LClick(296,241)
	UO.LClick(296,241)
	UO.LClick(296,241)
	Wait(7000)
	UO.Press(37)
	UO.UseType(0x13fa)
	Wait(1000)
	UO.LClick(296,241)
	UO.LClick(296,241)
	UO.LClick(296,241)
	Wait(7000)
	UO.Press(37)
	UO.UseType(0x13fa)
	Wait(1000)
	UO.LClick(296,241)
	UO.LClick(296,241)
	UO.LClick(296,241)
	Wait(7000)
	UO.Press(37)
	UO.UseType(0x13fa)
	Wait(1000)
	UO.LClick(296,241)
	UO.LClick(296,241)
	UO.LClick(296,241)
	Wait(7000)
	UO.Press(37)
	UO.UseType(0x13fa)
	Wait(1000)
	UO.LClick(296,241)
	UO.LClick(296,241)
	UO.LClick(296,241)
	Wait(7000)
	UO.Press(37)
	UO.UseType(0x13fa)
	Wait(1000)
	UO.LClick(296,241)
	UO.LClick(296,241)
	UO.LClick(296,241)
	Wait(7000)
	UO.Press(37)
	UO.UseType(0x13fa)
	Wait(1000)
	UO.LClick(296,241)
	UO.LClick(296,241)
	UO.LClick(296,241)
	Wait(7000)
	UO.Press(37)
	UO.UseType(0x13fa)
	Wait(1000)
	UO.LClick(296,241)
	UO.LClick(296,241)
	UO.LClick(296,241)
	Wait(7000)
	UO.Press(37)
	UO.UseType(0x13fa)
	Wait(1000)
	UO.LClick(296,241)
	UO.LClick(296,241)
	UO.LClick(296,241)
	Wait(7000)
	UO.Press(37)
	UO.UseType(0x13fa)
	Wait(1000)
	UO.LClick(296,241)
	UO.LClick(296,241)
	UO.LClick(296,241)
	Wait(7000)
	UO.Press(37)
	UO.UseType(0x13fa)
	Wait(1000)
	UO.LClick(296,241)
	UO.LClick(296,241)
	UO.LClick(296,241)
	Wait(7000)
	UO.Press(37)
	UO.UseType(0x13fa)
	Wait(1000)
	UO.LClick(296,241)
	UO.LClick(296,241)
	UO.LClick(296,241)
	Wait(7000)
	UO.Press(37)
	UO.UseType(0x13fa)
	Wait(1000)
	UO.LClick(296,241)
	UO.LClick(296,241)
	UO.LClick(296,241)
	Wait(7000)
	UO.Press(37)
	UO.UseType(0x13fa)
	Wait(1000)
	UO.LClick(296,241)
	UO.LClick(296,241)
	UO.LClick(296,241)
	Wait(7000)
	
###############Coming Back now

	UO.UseType(0x13fa)
	Wait(1000)
	UO.LClick(338,167)
	UO.LClick(338,167)
	UO.LClick(338,167)
	Wait(7000)
	UO.Press(39)
	UO.Press(39)
	UO.UseType(0x13fa)
	Wait(1000)
	UO.LClick(338,167)
	UO.LClick(338,167)
	UO.LClick(338,167)
	Wait(7000)
	UO.Press(39)
	UO.UseType(0x13fa)
	Wait(1000)
	UO.LClick(338,167)
	UO.LClick(338,167)
	UO.LClick(338,167)
	Wait(7000)
	UO.Press(39)
	UO.UseType(0x13fa)
	Wait(1000)
	UO.LClick(338,167)
	UO.LClick(338,167)
	UO.LClick(338,167)
	Wait(7000)
	UO.Press(39)
	UO.UseType(0x13fa)
	Wait(1000)
	UO.LClick(338,167)
	UO.LClick(338,167)
	UO.LClick(338,167)
	Wait(7000)
	UO.Press(39)
	UO.UseType(0x13fa)
	Wait(1000)
	UO.LClick(338,167)
	UO.LClick(338,167)
	UO.LClick(338,167)
	Wait(7000)
	UO.Press(39)
	UO.UseType(0x13fa)
	Wait(1000)
	UO.LClick(338,167)
	UO.LClick(338,167)
	UO.LClick(338,167)
	Wait(7000)
	UO.Press(39)
	UO.UseType(0x13fa)
	Wait(1000)
	UO.LClick(338,167)
	UO.LClick(338,167)
	UO.LClick(338,167)
	Wait(7000)
	UO.Press(39)
	UO.UseType(0x13fa)
	Wait(1000)
	UO.LClick(338,167)
	UO.LClick(338,167)
	UO.LClick(338,167)
	Wait(7000)
	UO.Press(39)
	UO.UseType(0x13fa)
	Wait(1000)
	UO.LClick(338,167)
	UO.LClick(338,167)
	UO.LClick(338,167)
	Wait(7000)
	UO.Press(39)
	UO.UseType(0x13fa)
	Wait(1000)
	UO.LClick(338,167)
	UO.LClick(338,167)
	UO.LClick(338,167)
	Wait(7000)
	UO.Press(39)
	UO.UseType(0x13fa)
	Wait(1000)
	UO.LClick(338,167)
	UO.LClick(338,167)
	UO.LClick(338,167)
	Wait(7000)
	UO.Press(39)
	UO.UseType(0x13fa)
	Wait(1000)
	UO.LClick(338,167)
	UO.LClick(338,167)
	UO.LClick(338,167)
	Wait(7000)
	UO.Press(39)
	UO.UseType(0x13fa)
	Wait(1000)
	UO.LClick(338,167)
	UO.LClick(338,167)
	UO.LClick(338,167)
	Wait(7000)
	UO.Press(39)
	UO.UseType(0x13fa)
	Wait(1000)
	UO.LClick(338,167)
	UO.LClick(338,167)
	UO.LClick(338,167)
	Wait(7000)
	UO.Press(39)
	UO.UseType(0x13fa)
	Wait(1000)
	UO.LClick(338,167)
	UO.LClick(338,167)
	UO.LClick(338,167)
	Wait(7000)
	UO.Press(39)
	UO.UseType(0x13fa)
	Wait(1000)
	UO.LClick(338,167)
	UO.LClick(338,167)
	UO.LClick(338,167)
	Wait(7000)
	UO.Press(39)
	UO.UseType(0x13fa)
	Wait(1000)
	UO.LClick(338,167)
	UO.LClick(338,167)
	UO.LClick(338,167)
	Wait(7000)
	UO.Press(39)
	UO.UseType(0x13fa)
	Wait(1000)
	UO.LClick(338,167)
	UO.LClick(338,167)
	UO.LClick(338,167)
	Wait(7000)
	UO.Press(39)
	UO.UseType(0x13fa)
	Wait(1000)
	UO.LClick(338,167)
	UO.LClick(338,167)
	UO.LClick(338,167)
	Wait(7000)
GOTO La:
end sub

lumberjeack.sc #

Note: Script file create date 26/03/2003 This script has been added for archival purposes, it was created prior to the use of objects in scripts (limited scripting knowledge) and relied on the UO.Click function which was very unreliable.

sub main()
  aaa:
# first Row
	UO.LDblClick(710,292)
		wait(5000)
	UO.LClick(228,152)
		wait(6000)
		
	UO.LDblClick(710,292)
		wait(5000)	
	UO.LClick(251,120)
		wait(6000)
		
	UO.LDblClick(710,292)
		wait(5000)
	UO.LClick(277,97)
		wait(6000)
		
	UO.LDblClick(710,292)
		wait(5000)
	UO.LClick(298,77)
		wait(6000)
		
	UO.LDblClick(710,292)
		wait(5000)
	UO.LClick(320,53)
		wait(6000)
# first Row

# second Row
	UO.LDblClick(710,292)
		wait(5000)
	UO.LClick(251,179)	
		wait(6000)
		
	UO.LDblClick(710,292)
		wait(5000)		
	UO.LClick(277,150)
		wait(6000)
		
	UO.LDblClick(710,292)
		wait(5000)		
	UO.LClick(300,124)	
		wait(6000)
		
	UO.LDblClick(710,292)
		wait(5000)
	UO.LClick(320,101)
		wait(6000)
		
	UO.LDblClick(710,292)
		wait(5000)
	UO.LClick(343,85)
		wait(6000)
# second Row

# third Row
	UO.LDblClick(710,292)
		wait(5000)
	UO.LClick(340,122)
		wait(6000)
		
	UO.LDblClick(710,292)
		wait(5000)		
	UO.LClick(363,103)
		wait(6000)
# third Row

# fourth Row
	UO.LDblClick(710,292)
		wait(5000)		
	UO.LClick(297,224)
		wait(6000)
		
	UO.LDblClick(710,292)
		wait(5000)		
	UO.LClick(321,189)
		wait(6000)
		
	UO.LDblClick(710,292)
		wait(5000)		
	UO.LClick(343,165)
		wait(6000)
		
	UO.LDblClick(710,292)
		wait(5000)		
	UO.LClick(366,141)
		wait(6000)

	UO.LDblClick(710,292)
		wait(5000)				
	UO.LClick(383,125)
		wait(6000)
# fourth Row

# fith Row
	UO.LDblClick(710,292)		
		wait(5000)
	UO.LClick(319,279)
		wait(6000)
		
	UO.LDblClick(710,292)
		wait(5000)				
	UO.LClick(343,213)
		wait(6000)
		
	UO.LDblClick(710,292)
		wait(5000)		
	UO.LClick(364,188)	
		wait(6000)
		
	UO.LDblClick(710,292)
		wait(5000)		
	UO.LClick(387,169)
		wait(6000)
		
	UO.LDblClick(710,292)
		wait(6000)				
	UO.LClick(406,150)
# fith Row	
wait(6000)

  goto aaa
end sub

lumberonetree.sc #

sub main()
	Repeat
		UO.WaitTargetLast()
		UO.UseType(0x0F43)
		UO.DeleteJournal()
		Repeat
			wait(200)
		Until UO.InJournal("finished looping")
	Until False
end sub

lumber for ava.sc #

sub main()
	var axeType = 0x0F43
	var startX = UO.GetX()
	var i, count, time, xDistance, currentDy, newDy, temp, j
	
	#########################
	# Count Number of Trees #
	#########################
	
	UO.IgnoreReset()
	UO.FindType('0x0D38', -1, 'ground')
	count = UO.FindCount()

	dim trees[val(str(count))]
	
	#######################################
	# Add trees within an x Distance of 2 #
	#######################################
	
	temp = 0
	For i = 0 to count - 1
		UO.FindType('0x0D38',-1,'ground')
		xDistance = UO.GetX() - UO.GetX('finditem')
		If abs(xDistance) < 3 Then
			trees[temp] = UO.GetSerial('finditem')
			temp = temp + 1
		End If
		UO.Ignore('finditem')
	Next
	UO.IgnoreReset()
	count = temp
	
	UO.Print( "Found and stored " + str(count) + " trees. Now Ordering..." )
	
	###########################
	# Order trees by Y co-ord #
	###########################
	
	For i = 1 To (count - 1)
		For j = i To (count - 1)
			If UO.GetY(trees[j]) < UO.GetY(trees[i-1]) Then
				temp = trees[i-1]
				trees[i-1] = trees[j]
				trees[j] = temp
			End If
		Next
		break:
	Next

	################
	# Lumber Trees #
	################

	#findDoubleTrees(trees, count) #Uncomment this line to find if two trees are on top of each other
	
	Repeat
		For i = 0 To (count - 1)
			UO.DeleteJournal()
			If UO.GetY(trees[i]) <> UO.GetY() Then
				moveTo(startX, UO.GetY(trees[i]))
			End If
			
			UO.Print("Lumbering Tree: " + str(i + 1) + " Serial: " + trees[i])
			UO.WaitTargetObject(trees[i])
			UO.UseType(axeType)
			
			time = 0
			Repeat
				Wait(200)
				time = time + 200
			Until UO.InJournal("looping") OR time > 10000
		Next
	Until False
end sub

sub findDoubleTrees(treeArray, arraySize)
	var i, j
	For i = 0 To (arraySize - 2)
		For j = (i + 1) To (arraySize - 1)
			If UO.GetX(treeArray[i]) == UO.GetX(treeArray[j]) && UO.GetY(treeArray[i]) == UO.GetY(treeArray[j]) Then
				UO.Print( "Double Tree Found at: " + STR(UO.GetX(treeArray[i])) + ", " + STR(UO.GetY(treeArray[i])) )
			End If
		Next
	Next
end sub

sub abs(number)
	var result
	If (number < 0) Then
		result = number * -1
	Else
		result = number
	End If
	
	return result
end sub

sub moveTo(x,y)
	var deltaX
	var deltaY
	
	While NOT UO.GetX() == x || NOT UO.GetY() == y
		deltaX = x - UO.GetX()
		deltaY = y - UO.GetY()
		UO.Print("Moving By: " + STR(deltaX) + ", " + STR(deltaY))
		
		If UO.Stamina < 15 Then
			#UO.UseType(food) #It may be an idea to eat some food here to remove waiting
			UO.Print("Stamina too low, waiting...")
		End If
		While UO.Stamina < 10
			Wait(200)
		Wend
		
		deltaX = abs(deltaX)
		deltaY = abs(deltaY)
		
		If UO.GetX() > x Then
			keyPress(36, deltaX)
		Else 
		If UO.GetX() < x Then
			keyPress(34, deltaX)
		Else
		If UO.GetY() > y Then
			keyPress(33, deltaY)
		Else 
		If UO.GetY() < y Then
			keyPress(35, deltaY)
		EndIf
		EndIf
		EndIf
		EndIf
		Wait(750)
	Wend
end sub

sub keyPress(key, amount)
	var i
	UO.Press(40)
	For i = 0 To amount
		UO.Press(key)
		Wait(300)
	Next
end sub

lumber and armslore.sc #

sub main()
	var i = 0
	var time = 0
	var count
	
	UO.FindType('0x0d38',-1,'ground')
	count = UO.FindCount()
	UO.Print("Found " + str(count) + " trees on screen.")
	
	dim trees[val(str(count))]

	Repeat
		UO.FindType('0x0d38',-1,'ground')
		trees[i] = UO.GetSerial('finditem')
		
		#Check if trees found are in range
		If UO.GetDistance(trees[i])>2 Then
			count = count - 1
		Else
			i = i + 1
		End If
		
		UO.Ignore('finditem')
	Until i == count
	UO.IgnoreReset()
	
	UO.Print( "Stored " + str(count) + " trees in range. Now Lumbering..." )
	
	UO.Say(".autoloop 1")
	UO.Say(".disarm")
	Wait(1000)

	While count > 0
		i = 0
		Repeat
			#May comment out the line below to remove arms lore macro.
			#armsLore()
			
			UO.DeleteJournal()
			UO.Print("Lumbering Tree: " + str(i + 1) + " Serial: " + trees[i])
			UO.WaitTargetObject(trees[i])
			#May change axe type below. 0x0F43 is for hatchets.
			UO.UseType(0x13FA)
			Repeat
				Wait(200)
				time = time + 200
			Until UO.InJournal("looping") OR time > 10000
			time = 0
			i = i + 1
		Until i == count
	Wend
	UO.Print("No trees in range")
end sub

sub armsLore()
	var time = 0
	UO.DeleteJournal()
	
	#May change item to use Arms Lore with. 0x13E3 is a Smith's Hammer.
	UO.WaitTargetType(0x13E3)
	UO.UseSkill("Arms Lore")
	Repeat
		Wait(200)
		time = time + 200
	Until UO.InJournal("tell") OR UO.InJournal("Hammer") OR time > 10000
end sub

lumber and arms lore.sc #

sub main()
	var i = 0
	var time = 0
	var count
	
	UO.FindType('0x0d38',-1,'ground')
	count = UO.FindCount()
	UO.Print("Found " + str(count) + " trees on screen.")
	
	dim trees[val(str(count))]

	Repeat
		UO.FindType('0x0d38',-1,'ground')
		trees[i] = UO.GetSerial('finditem')
		
		#Check if trees found are in range
		If UO.GetDistance(trees[i])>2 Then
			count = count - 1
		Else
			i = i + 1
		End If
		
		UO.Ignore('finditem')
	Until i == count
	UO.IgnoreReset()
	
	UO.Print( "Stored " + str(count) + " trees in range. Now Lumbering..." )
	
	UO.Say(".autoloop 1")
	UO.Say(".disarm")
	Wait(1000)

	While count > 0
		i = 0
		Repeat
			#May comment out the line below to remove arms lore macro.
			#armsLore()
			
			UO.DeleteJournal()
			UO.Print("Lumbering Tree: " + str(i + 1) + " Serial: " + trees[i])
			UO.WaitTargetObject(trees[i])
			#May change axe type below. 0x0F43 is for hatchets.
			UO.UseType(0x13FA)
			Repeat
				Wait(200)
				time = time + 200
			Until UO.InJournal("looping") OR time > 10000
			time = 0
			i = i + 1
		Until i == count
	Wend
	UO.Print("No trees in range")
end sub

sub armsLore()
	var time = 0
	UO.DeleteJournal()
	
	#May change item to use Arms Lore with. 0x13E3 is a Smith's Hammer.
	UO.WaitTargetType(0x13E3)
	UO.UseSkill("Arms Lore")
	Repeat
		Wait(200)
		time = time + 200
	Until UO.InJournal("tell") OR UO.InJournal("Hammer") OR time > 10000
end sub

lumber 2.sc #

sub main()
  var la
  var time = 0
  Repeat
    la = 1
    Repeat
      UO.DeleteJournal()
      UO.Print("Lumbering Tree " + str(la))
      UO.Waittargetobject("tree" + str(la))
      UO.Usetype(0x0f43)
      Repeat
      	Wait(200)
      	time = time + 200
      Until UO.InJournal("looping") OR time > 10000
      time = 0
      la = la + 1
    Until la > 22
  Until FALSE
end sub

lumber 3.sc #

sub main()
	var yuccaType = 0x0D38
	var hatchetType = 0x0F43

	UO.Set("finddistance", 2)	
	UO.Set("quiet", 0)

	UO.FindType(yuccaType, -1, 'ground')
	var count = UO.FindCount()
	
	var i = 0
	var time = 0
	
	dim trees[val(str(count))]

	For i = 0 To count - 1
		UO.FindType(yuccaType, -1, 'ground')	
		trees[i] = UO.GetSerial('finditem')
		UO.Ignore('finditem')
	Next
	
	UO.IgnoreReset()
	
	UO.Print("Found and stored " + Str(count) + " trees. Now Lumbering...")
	
	UO.Set("quiet", 1)
	
	Repeat
		For i = 0 To count - 1	
			UO.WaitTargetObject(trees[i])
			UO.UseType(hatchetType)
			
			journalWait("finished|aborted", 10000)
		Next
	Until False
end sub

sub journalWait(journalPattern, timeOut)
	var time = 0
		
	UO.DeleteJournal()
	
	Repeat
		time = time + 200
		Wait(200)
	Until UO.InJournal(journalPattern) || time > timeOut
end sub

Powered by BetterDocs