##### #чар ходит капает в городе Британии вдоль скалы #как обкапал скалу, обкапывает еще разок #затем идет и плавит всю руду выкапанную #потом идет к банку и делает из ингов отмычки #потом идет и продает все эти отмычки вендору #потом выкладывает золото, возвращается к скале и опять 25 ###### #настройки тут очень простые: #1)надо создать buy/sell лист с именем lp для продажи отмычек #2)вписать тип кирки/лопаты примерно 150 строка в скрипте #3)положить в банк инструмент для тинкерства ###### #замечания!!! #1)чар делает отмычки поэтому скилл тинкера нужен >48,5 #2)чар работает с сундуком банка, поэтому нельзя допускать # чтобы сундук банка закрывался, лучше запустить скрипт # и не трогать его, можно тока общаться продолжать без проблем #3)скрипт надо запускать, когда вы в координатах 1459-1510 #4)чар 2 раза обкапывает скалу - это примерно 550 оров руды, что # соответствует силе примерно в 140 так что если сила чара меньше # чем 140 может выпадать руда при копании ###### #from GimFlex aka Question with smile again) ###### sub main() while not uo.dead() gomine() gominback() gomine() gosmelt() smeltore() gobank() unloadiron() #### tinkering() gosell() sellvendor() goungold() unloadgold() gomaxback() wend endsub Sub gomine() go(1459,1510,1) go(1458,1507,1) go(1457,1506,1) go(1455,1505,1) go(1452,1506,1) go(1450,1509,1) go(1450,1512,1) go(1450,1513,1) go(1448,1515,1) go(1451,1517,1) go(1452,1519,1) go(1451,1521,1) go(1448,1522,1) go(1445,1523,1) go(1445,1525,1) go(1447,1527,1) go(1448,1528,1) go(1450,1530,1) go(1452,1529,1) go(1454,1529,1) endsub Sub gosmelt() go(1432,1542,0) go(1426,1556,0) endsub Sub gobank() go(1430,1570,0) go(1438,1583,0) go(1425,1592,0) go(1425,1622,0) go(1420,1631,0) go(1420,1668,0) go(1436,1671,0) go(1435,1680,0) endsub Sub gomaxback() go(1435,1669,0) go(1420,1669,0) go(1420,1631,0) go(1425,1592,0) go(1438,1583,0) go(1430,1570,0) go(1430,1536,0) go(1445,1515,0) go(1453,1502,0) go(1460,1505,0) endsub Sub gominback() go(1446,1533,0) go(1441,1524,0) go(1447,1504,0) go(1460,1504,0) endsub Sub gosell() var dver='0x400009D9' go(1435,1658,0) go(1432,1658,0) while uo.getx('self')>=1432 uo.useobject(dver) wait(700) uo.press(36) wait(400) uo.press(36) wait(400) uo.press(36) wait(400) wend go(1426,1655,0) endsub Sub goungold() var dver='0x400009D9' go(1430,1658,0) while uo.getx('self')<=1430 uo.useobject(dver) wait(700) uo.press(39) wait(400) uo.press(39) wait(400) uo.press(39) wait(400) wend go(1435,1680,0) endsub Sub sellvendor() var vendor="Granger" uo.set('buydelay','4000') uo.set('maxsell','200') uo.findtype('0x14FB','-1','backpack') while uo.findcount() uo.sell('lp',vendor) wait(4200) uo.findtype('0x14FB','-1','backpack') wend endsub Sub kopka() var kirka='0x0E85' var i,j,x,y,z var ms1="Try mining" var ms2="You put" var ms3="There is no ore" var ms4="You loosen" x=uo.getx('self') y=uo.gety('self') z=uo.getz('self') hiding() for i=-1 to 1 for j=-1 to 1 repeat uo.deletejournal() uo.waittargettile(0,x+i,y+j,z) uo.usetype(kirka) repeat wait(300) until uo.injournal(ms1) or uo.injournal(ms2) or uo.injournal(ms3) or uo.injournal(ms4) until uo.injournal(ms1) or uo.injournal(ms3) next next endsub Sub unloadiron() uo.findtype('0x1BEF','-1','backpack') while uo.findcount() uo.say("bank") wait(1200) uo.findtype('0x1BEF','-1','backpack') if uo.findcount() then uo.moveitem('finditem','all','lastcontainer') endif uo.findtype('0x1BEF','-1','backpack') wend endsub Sub unloadgold() uo.findtype('0x0EED','-1','backpack') while uo.findcount() uo.say("bank") wait(1200) uo.findtype('0x0EED','-1','backpack') if uo.findcount() then uo.moveitem('finditem','all','lastcontainer') endif uo.findtype('0x0EED','-1','backpack') wend endsub Sub hiding() var ms1="You have hidden" var ms2="You can't" repeat uo.deletejournal() uo.useskill('Hiding') repeat wait(200) until uo.injournal(ms1) or uo.injournal(ms2) until uo.injournal(ms1) endsub Sub smeltore() uo.findtype('0x19B9','-1','backpack') while uo.findcount() uo.useobject('finditem') wait(700) uo.findtype('0x19B9','-1','backpack') wend endsub sub tinkering() var bank var ms1="You put" var ms2="Tinkering failed" uo.cancelmenu() uo.automenu('Tinkering','Tools') uo.automenu('Tools','lockpick (1 iron ingot)') uo.say("bank") wait(1200) bank=uo.getserial('lastcontainer') uo.findtype('0x1EBC','-1',bank) if uo.findcount() then uo.moveitem('finditem','all','backpack') endif uo.findtype('0x1BEF','-1',bank) while uo.findcount() uo.moveitem('finditem','30','backpack') wait(1200) uo.findtype('0x1BEF','-1','backpack') while uo.findcount() uo.deletejournal() uo.usetype('0x1EBC') repeat wait(300) until uo.injournal(ms1) or uo.injournal(ms2) uo.findtype('0x1BEF','-1','backpack') wend uo.findtype('0x14FB','-1','backpack') if uo.findcount() then uo.moveitem('finditem','all',bank) endif uo.findtype('0x1BEF','-1',bank) wend uo.findtype('0x1EBC','-1','backpack') if uo.findcount() then uo.moveitem('finditem','all',bank) endif uo.findtype('0x14FB','-1',bank) if uo.findcount() then uo.moveitem('finditem','all','backpack') wait(900) endif endsub Sub go(x,y,k) VAR i 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 Wend if k==1 then kopka() endif end sub Sub StepEdit(x,y,dir,key) VAR walkwait=100 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 endsub Sub StepArrow(x,y,dir,ldir,rdir,key) VAR walkwait=100 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 endsub Sub CheckLag() UO.DeleteJournal() UO.Click('backpack') repeat Wait(250) until UO.InJournal('backpack') endsub
|
27.04.2009