Подредактируйте скрипт.

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
newman
Posts: 36
Joined: 2006-08-12 15:42:02

Подредактируйте скрипт.

Post by newman »

Code: Select all

##### 
#чар ходит капает в городе Британии вдоль скалы
#как обкапал скалу, обкапывает еще разок
#затем идет и плавит всю руду выкапанную
#потом идет к банку и делает из ингов отмычки
#потом идет и продает все эти отмычки вендору
#потом выкладывает золото, возвращается к скале и опять 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="Granger"
 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


Уберите оттуда штобы он делал отмычки.А просто клал в банк инги.Или обкапывал скалу пока вес до предела недойдет.
mez
Posts: 91
Joined: 2006-04-02 11:33:38
Contact:

Post by mez »

это оптимальный скрипт банк быстро заполниться! рудой!
newman
Posts: 36
Joined: 2006-08-12 15:42:02

Post by newman »

Мне нужно убрать отсюда фишку штобы он не делал отмычки.А просто складывал инги и шол опят ькопать.
Rivory
Posts: 205
Joined: 2005-01-06 11:49:28

Re: Подредактируйте скрипт.

Post by Rivory »

newman wrote:

Code: Select all

sub main() 
 while not uo.dead()
  gomine()
  gominback()
  gomine()
  gosmelt()
  smeltore()
  gobank()
  unloadiron()
 #### tinkering()
  gosell()
  sellvendor()
  goungold()
  unloadgold()
  gomaxback()
 wend
endsub


Уберите оттуда штобы он делал отмычки.А просто клал в банк инги.Или обкапывал скалу пока вес до предела недойдет.
Исправь вот так и всё.
newman
Posts: 36
Joined: 2006-08-12 15:42:02

Post by newman »

Стал писать no item ofund что значит?!?
Lifetour
Posts: 30
Joined: 2008-06-04 03:27:01
Location: Bradford(UK)/Riga(LV)

Post by Lifetour »

рябятттт!! помогите! встаёт в координатах 1448,1528 и никуда не хочет идти!!!

что делать?! :cry:
some
Posts: 197
Joined: 2007-05-23 19:51:18

Post by some »

Ребята, как научить вышеуказанный скрипт дружить со скриптом антимакроса, приведенным ниже ?
А то получается я запускаю скрипт на копку и параллельно ему запускаю скрипт антимакроса - он копает, все нормально.
Как только появляется менюшка антимакроса(которую шард выдает ) - скрипт антимакроса ее закрывает - НО ЧАР НЕ начинает копать!!!
А если сделать даблклик на кирку - начинает :)
помогите :shock:
Post Reply