Need you help...

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
spider
Posts: 20
Joined: 2004-05-06 18:13:44

Need you help...

Post by spider »

Code: Select all

sub mine_always() 
Uo.Disarm()
UO.set("finddistance","2")
while 1
hungry()
go_mining("8ol8ki")

UO.Print("Again")
wend
end sub


############################################################
# Main Mining Function! Conf. Needed (look above)
############################################################
sub go_mining(path)
var cycle=1
# var path="8ol8ki"
var test=0
var i=0
var j
UO.DeleteJournal()

While i<LEN(path)
if VAL(path[i]) then
j=VAL(path[i])
i=i+1
else
j=1
endif

Repeat
if test<>1 then
UO.DeleteJournal()
mine_spot()
gogo()
end if

UO.Print("New Location!")
if not make_step(path[i]) then
UO.Print("Probably Stuck!")
UO.Print("Hope it is a Worldsave")
endif
j=j-1
Until j==0

i = i + 1
if cycle && i==LEN(path) then
i=0
endif
Wend
end sub


sub Mine_Spot()
var mineTime=0

hungry()

if UO.Count("0x0e85") then
UO.DeleteJournal()
UO.waittargettile(1339,UO.GetX(),UO.GetY(),0)
UO.usetype("0x0e85")
repeat
mineTime = mineTime + 1
wait(1000)
until UO.injournal('there is no more') or UO.injournal('You cannot') or UO.injournal('tool broke') or UO.injournal('stop mining') or UO.injournal('must wait') or UO.injournal('already doing') or UO.injournal('no sand') or UO.journal('fail') or (mineTime>120)
UO.DeleteJournal()
end if
UO.Print("Finished")
ore()
endif
return 0
end sub

############################################################
# Main Path-Recording function!
############################################################
sub record_path()
var x
var y
var path=""
UO.DeleteJournal()
Repeat
x=UO.GetX()
y=UO.GetY()
if waitNewPos(x,y) then
path=path+extract_dir(x,y,UO.GetX(),UO.GetY())
endif
Until UO.InJournal("stop")
path = compressPath(path)
UO.TextClear()
UO.TextOpen()
UO.TextPrint("Your path is:")
UO.TextPrint(path)
end sub

############################################################
# Auxilliar sub.
############################################################
sub send_step(keycode,dir)
var x = UO.GetX()
var y = UO.GetY()

while (UO.Stamina<7) AND (x==UO.GetX()) AND (y==UO.GetY())
UO.useobject("Music")
wait(2100)
wend

var timeout = 0

while (UO.GetDir()<>dir) AND (x==UO.GetX() ) AND (y==UO.GetY() )
timeout = 0
UO.Press(keycode)
Repeat
timeout=timeout+50
wait(50)
Until (UO.GetDir()==dir) || (timeout>10000)
wend

while (x==UO.GetX() ) AND (y==UO.GetY() )
timeout = 0
UO.Press(keycode)
Repeat
timeout=timeout+50
wait(50)
Until x<>UO.GetX() || y<>UO.GetY() || (timeout>10000)
wend

return 1
end sub

############################################################
# Bunch of auxilliar subs. No need to change anything!
############################################################
sub waitNewPos(x,y)
while x==UO.GetX() && y==UO.GetY()
if UO.InJournal("stop") then
return 0
endif
wend
return 1
end sub

sub compressPath(path)
Var i=0
Var j=0
Var newPath=""
while i<LEN(path)
j=1
while path[i]==path[i+1] AND j<9
i=i+1
j=j+1
wend
if j==1 then
newPath=newPath+path[i]
else
newPath=newPath+STR(j)+path[i]
endif
i=i+1
wend
return newPath
end sub

sub extract_dir(x,y,a,b)
if x>a then
if y==b then
return "i"
else
if y>b then
return "n"
else
return "w"
endif
endif
else
if x<a then
if y==b then
return "l"
else
if y>b then
return "e"
else
return "s"
endif
endif
else
if y>b then
return "o"
else
return "k"
endif
endif
endif
end sub

sub make_step(dir)
if dir=="e" then
send_step(39,1)
return 1
gogo()
endif
if dir=="l" then
send_step(34,2)
return 1
gogo()
endif
if dir=="s" then
send_step(40,3)
return 1
gogo()
endif
if dir=="k" then
send_step(35,4)
return 1
gogo()
endif
if dir=="w" then
send_step(37,5)
return 1
gogo()
endif
if dir=="i" then
send_step(36,6)
return 1
gogo()
endif
if dir=="n" then
send_step(38,7)
return 1
gogo()
endif
if dir=="o" then
send_step(33,0)
return 1
gogo()
endif
if dir=="d" then
While UO.Count("0x0eed")
UO.Drop("0x0eed")
wait(1000)
Wend
wait(200)
return 1
endif
UO.Print("Recall Time!")
return 0
end sub




sub ore()
if (UO.Weight>0) then
uo.ignorereset()
uo.findtype("0x0eed",-1,"ground") #ore
while (Uo.FindCount()>0)
if (uo.GetX("finditem")<>uo.GetX()) OR (uo.GetY("finditem")<>uo.GetY()) then
Uo.Grab(0,"finditem")
endif
uo.ignore("finditem","on")
wait(300)
uo.findtype("0x0eed",-1,"ground") #ore
wend
uo.ignorereset()
endif
end sub

sub hungry()
var hungry=1
while hungry==1
UO.DeleteJournal()
UO.ServerPrint(".hungry")
while not UO.InJournal("You")
wait(50)
wend
if not UO.InJournal("stuffed") then
if UO.Count(0x097B)>0 then
UO.UseType(0x097B)
wait(2000)
else
UO.Exec("findtype 0x097B -1 ground")
Wait(500)
if UO.FindCount()>0 then
UO.Grab("20","finditem")
Wait(500)
else
hungry=0
endif
hungry=0
endif
else
hungry=0
endif
wend
endsub

sub gogo()
if UO.Weight >400 then
UO.Exec("waittargettype 0x0eed")
UO.Exec("drophere")
wait (500)
endif
if UO.Weight >400 then
UO.Exec("waittargettype 0x19b8")
UO.Exec("drophere")
wait (500)
endif
endsub

долго и нудно искал в чем подвох так и не нашел...
flake
Expert!
Posts: 746
Joined: 2004-08-11 23:56:17
Location: The Citadel
Contact:

Post by flake »

Так а что хочешь то?
Post Reply