Вот такой скрипт на копку скалы в Брите:
Code: ##### #÷àð õîäèò êàïàåò â ãîðîäå Áðèòàíèè âäîëü ñêàëû #êàê îáêàïàë ñêàëó, îáêàïûâàåò åùå ðàçîê #çàòåì èäåò è ïëàâèò âñþ ðóäó âûêàïàííóþ #ïîòîì èäåò ê áàíêó è äåëàåò èç èíãîâ îòìû÷êè #ïîòîì èäåò è ïðîäàåò âñå ýòè îòìû÷êè âåíäîðó #ïîòîì âûêëàäûâàåò çîëîòî, âîçâðàùàåòñÿ ê ñêàëå è îïÿòü 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(500) uo.press(36) wait(200) uo.press(36) wait(200) uo.press(36) wait(200) wend go(1426,1655,0) endsub
Sub goungold() var dver='0x400009D9' go(1430,1658,0) while uo.getx('self')<=1430 uo.useobject(dver) wait(500) uo.press(39) wait(200) uo.press(39) wait(200) uo.press(39) wait(200) wend go(1435,1680,0) endsub
Sub sellvendor() var vendor="Taima" uo.set('buydelay','4000') uo.set('maxsell','200') uo.findtype('0x14FB','-1','backpack') while uo.findcount() uo.sell('lp',vendor) wait(4000) uo.findtype('0x14FB','-1','backpack') wend endsub
Sub kopka() var kirka='0x0F39' 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(100) 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(1000) 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(1000) 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(100) 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(500) 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(1000) 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(1000) uo.findtype('0x1BEF','-1','backpack') while uo.findcount() uo.deletejournal() uo.usetype('0x1EBC') repeat wait(100) 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(700) 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(50) until UO.InJournal('backpack') endsub
в общем, чар как есть капает в 2 круга, потом плавит, потом идет скидывает в банк инготы, потом делает локпики, но после, он просто закрывает банк, и пустой идет к вендору, потом к банку просто подойдет и даже не скажет bank и дальше обратно к скале.
Где тут ошибка, чтобы он брал локпики (отмычки) и продавал их, а потом все-таки скидывал золото в банк, и уже после возвращался к скале?.
PS простите за каракули.
|