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