var cont1='0x400AE73F' # в этой строке укажи сейф ещё раз var cont2='0x402AD852' # бэкпак в сейфе для пустых мещков var safe='0x400AE73F' # сейф где все сложено(в пределах досягаесости от точки рекола)
sub P()
UO.Exec('addobject Rune') while UO.Targeting() wait(100) wend
UO.Exec('addobject runehome') while UO.Targeting() wait(100) wend endsub sub Prodaga() var poly = false; var booka='0x404b13de' var cont1='0x400AE73F' var mesh='0x0E76' var fl=0 var m var oldX=UO.GetX() var oldY=UO.GetY() while fl==0 poly = false repeat while uo.mana<40 uo.useskill('Meditation') wait(8000) wend uo.Print('>Trying to polymorph...') uo.Exec("waitmenu 'What do you' 'Daemon'") uo.deletejournal() uo.Cast('Polymorph') wait(8000) if not uo.injournal('The spell fizzles.') then poly = true endif until poly repeat for m=1 to 5 uo.useskill('Meditation') wait(650) uo.useobject(safe) wait(1000) uo.useobject(cont1) wait(1000) CheckLag() uo.findtype('0x0eed',-1,safe) wait(700) uo.moveitem('finditem','100','backpack') wait(1500) uo.findtype(mesh,-1,cont1) if uo.findcount() then uo.moveitem('finditem','1','backpack') CheckLag() else fl=1 endif uo.findtype(mesh,-1,cont1) if uo.findcount() then uo.moveitem('finditem','1','backpack') CheckLag() else fl=1 endif cast1: uo.deletejournal() while uo.mana<20 uo.useskill('Meditation') wait(1000) wend uo.cast('Recall','Rune') wait(6000) if uo.injournal('spell fizzles.') then goto cast1 endif uo.useskill('Meditation') wait(111) CheckLag() uo.useobject('0x400B4C3D') wait(2000) CheckLag() uo.lclick(406,314) wait(3000) GotoXY(2950,3345) wait(500) GotoXY(2952,3345) wait(800) sell() uo.useskill('Meditation') wait(111) GotoXY(2950,3345) wait(800) CheckLag() uo.useobject('0x403762b5') wait(2000) CheckLag() uo.lclick(77,126) wait(6000) cast2: uo.deletejournal() while uo.mana<20 uo.useskill('Meditation') wait(1000) wend uo.cast('Recall','runehome') wait(6000) if uo.injournal('spell fizzles.') then goto cast2 endif # GotoXY(1773,623) # wait(800) unload() next wend endsub ################################################### sub sell() var i for i=1 to 2 uo.findtype('0x0E76',-1,'backpack') wait(900) uo.waittargetobject('finditem') uo.useobject('0x400308a1') wait(2500) CheckLag() uo.lclick(192,138) uo.ignore('finditem') next uo.ignorereset() wait(1500) endsub
sub unload() var i for i=1 to 2 uo.findtype('0x0E76',-1,'backpack') wait(400) uo.moveitem('finditem','1',cont2) wait(1500) uo.ignore('finditem') next uo.findtype('0x0eed',-1,'backpack') wait(300) uo.moveitem('finditem','all',safe) wait(1500) uo.findtype('0x0eed',-1,'backpack') wait(300) uo.findtype('0x0eed',-1,'backpack') wait(300) uo.moveitem('finditem','all',safe) wait(1500) uo.moveitem('finditem','all',safe) wait(1500) uo.findtype('0x0eed',-1,safe) wait(300) uo.moveitem('finditem','100',safe) wait(1500) endsub
Sub Port(n,book) var oldX=UO.GetX() var oldY=UO.GetY() NoTarget() UO.UseObject(book) FastLootCheck() CheckLag() UO.LClick(135, n*15+55) Repeat wait(500) Until oldX<>UO.GetX() OR oldY<>UO.GetY() end sub
Sub FastLootCheck() UO.DeleteJournal() wait(600) if UO.InJournal("FastLoot") OR UO.InJournal("World save") then CheckLag() endif end sub
Sub NoTarget() if UO.Waiting() then UO.CancelTarget() endif end sub ##################################################### Sub GotoXY(x,y) VAR i,j,m VAR dir,ldir,rdir,key,olddir VAR dx,dy,Exit=0 VAR CacheLimit=9,CacheIndex="Text" DIM CacheX[10], CacheY[10]
CacheX[0]="Test"
While Exit<>1
dx=x-UO.GetX() dy=y-UO.GetY() If dx==0 AND dy==0 Then Exit=1 Endif
If dx<>0 AND dy<>0 Then If dx>0 AND dy>0 Then ; GoSE dir=3 ldir=2 rdir=4 key=40 ; DownArrow olddir=UO.GetDir() If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then If olddir==2 Then ; GoNE dir=1 ldir=0 rdir=1 key=39 ; RightArrow While UO.GetDir()<>1 StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Wend Else ; GoSW dir=5 ldir=5 rdir=6 key=37 ; LeftArrow While UO.GetDir()<>5 StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Wend Endif Endif Endif
If dx>0 AND dy<0 Then ; GoNE dir=1 ldir=0 rdir=2 key=39 ; RightArrow olddir=UO.GetDir() If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then If olddir==0 Then ; GoWN dir=7 ldir=6 rdir=7 key=38 ; UpArrow While UO.GetDir()<>7 StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Wend Else ; GoSE dir=3 ldir=3 rdir=4 key=40 ; DownArrow While UO.GetDir()<>3 StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Wend Endif Endif Endif
If dx<0 AND dy>0 Then ; GoSW dir=5 ldir=4 rdir=6 key=37 ; LeftArrow olddir=UO.GetDir() If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then If olddir==6 Then ; GoWN dir=7 ldir=7 rdir=0 key=38 ; UpArrow While UO.GetDir()<>7 StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Wend Else ; GoSE dir=3 ldir=2 rdir=3 key=40 ; DownArrow While UO.GetDir()<>3 StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Wend Endif Endif Endif
If dx<0 AND dy<0 Then ; GoWN dir=7 ldir=6 rdir=0 key=38 ; UpArrow olddir=UO.GetDir() If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then If olddir==0 Then ; GoNE dir=1 ldir=1 rdir=2 key=39 ; RightArrow While UO.GetDir()<>1 StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Wend Else ; GoSW dir=5 ldir=4 rdir=5 key=37 ; LeftArrow While UO.GetDir()<>5 StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Wend Endif Endif Endif Endif
If dx<>0 AND dy==0 Then If dx>0 Then ; GoE dir=2 key=34 ; PgDown olddir=UO.GetDir() If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then If olddir==2 Then ; GoSE dir=3 ldir=3 rdir=4 key=40 ; DownArrow While UO.GetDir()<>3 StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Wend Else ; GoNE dir=1 ldir=1 rdir=0 key=39 ; RightArrow While UO.GetDir()<>1 StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Wend Endif Endif Endif
If dx<0 Then ; GoW dir=6 key=36 ; Home key olddir=UO.GetDir() If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then If olddir==0 Then ; GoWN dir=7 ldir=7 rdir=0 key=38 ; UpArrow While UO.GetDir()<>7 StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Wend Else ; GoSW dir=5 ldir=4 rdir=5 key=37 ; LeftArrow While UO.GetDir()<>5 StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Wend Endif Endif Endif Endif
If dx==0 AND dy<>0 Then If dy>0 Then ; GoS dir=4 key=35 ; End If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then If olddir==2 Then ; GoSE dir=3 ldir=2 rdir=3 key=40 ; DownArrow While UO.GetDir()<>3 StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Wend Else ; GoSW dir=5 ldir=6 rdir=5 key=37 ; LeftArrow While UO.GetDir()<>5 StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Wend Endif Endif Endif
If dy<0 Then ;GoN dir=0 key=33 ; PgUp olddir=UO.GetDir() If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then If olddir==2 Then ; GoNE dir=1 ldir=1 rdir=2 key=39 ; RightArrow While UO.GetDir()<>1 StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Wend Else ; GoWN dir=7 ldir=7 rdir=6 key=38 ; UpArrow While UO.GetDir()<>7 StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Wend Endif Endif Endif Endif endif Wend end sub
Sub StepEdit(x,y,dir,key) VAR walkwait=300 VAR ErrLevel=0 If UO.GetDir()<>dir Then UO.Press(key) wait(walkwait) If UO.GetDir()<>dir Then CheckLag() Endif Endif UO.Press(key) wait(walkwait) If x==UO.GetX() AND y==UO.GetY() Then CheckLag() If x==UO.GetX() AND y==UO.GetY() Then ErrLevel=1 Endif Endif Return ErrLevel end sub
Sub StepArrow(x,y,dir,ldir,rdir,key) VAR walkwait=300 VAR ErrLevel=0 If UO.GetDir()<>dir Then UO.Press(key) wait(walkwait) If UO.GetDir()<>dir AND UO.GetDir()<>ldir AND UO.GetDir()<>rdir Then CheckLag() Endif Endif
If UO.GetX()==x AND UO.GetY()==y Then UO.Press(key) wait(walkwait) If UO.GetDir()==dir AND UO.GetX()==x AND UO.GetY()==y Then CheckLag() If UO.GetDir()==dir AND UO.GetX()==x AND UO.GetY()==y Then ErrLevel=1 Endif Endif Endif Return ErrLevel end sub
sub CheckLag() uo.deletejournal() uo.click('backpack') repeat wait(10) until uo.InJournal("backpack") end sub