It is currently 29 Mar 2024, 18:45

All times are UTC + 2 hours [ DST ]




Post new topic Reply to topic  [ 4 posts ] 
Author Message
PostPosted: 09 Aug 2017, 02:03 
Offline
Новичок

Joined: 25 Jul 2017, 23:11
Posts: 2
Может ли кто-то поделиться рабочим скриптом для копки в Миноке?


Top
 Profile  
 
PostPosted: 09 Aug 2017, 09:21 
Offline
Игрок

Joined: 25 Feb 2017, 17:52
Posts: 114
viewtopic.php?f=28&t=6989 Поставь самый дешёвый дом у любой шахты и всё наслаждайся.. и не надо тупых поисков скриптов.. дай себе 15 мин и будет работать.


Top
 Profile  
 
PostPosted: 11 Aug 2017, 15:49 
Offline
Новичок

Joined: 25 Jul 2017, 23:11
Posts: 2
Спасибо. Буду пробовать, если разберусь))


Top
 Profile  
 
PostPosted: 24 Aug 2017, 08:28 
Offline
Игрок

Joined: 06 Jan 2017, 16:39
Posts: 127
ходьба - WalkN(2562,471,'')
копка - mining()

желательно менять на свои координаты. желательно ходить по кругу а не через всю шахту к 1й координаты

Code:
var pickaxe
sub main()
   while 1
      WalkN(2562,471,'')
      mining()
      WalkN(2559,471,'')
      mining()
      WalkN(2558,468,'')
      mining()
      WalkN(2561,466,'')
      mining()
      WalkN(2564,464,'')
      mining()
      WalkN(2567,461,'')
      mining()
      WalkN(2568,458,'')
      mining()
      WalkN(2568,455,'')
      mining()
      WalkN(2569,452,'')
      mining()
      WalkN(2571,449,'')
      mining()
      WalkN(2573,447,'')
      mining()
      WalkN(2574,444,'')
      mining()
      WalkN(2577,446,'')
      mining()
      WalkN(2580,448,'')
      mining()
      WalkN(2584,448,'')
      mining()
      WalkN(2585,452,'')
      mining()
      WalkN(2581,454,'')
      mining()
      WalkN(2579,453,'')
      mining()
      WalkN(2576,452,'')
      mining()
      WalkN(2573,452,'')
      mining()
      WalkN(2571,455,'')
      mining()
      WalkN(2571,458,'')
      mining()
      WalkN(2570,461,'')
      mining()
      WalkN(2569,464,'')
      mining()
      WalkN(2566,466,'')
      mining()
      WalkN(2563,468,'')
      mining()
   wend
endsub
sub hiding()
   if uo.warmode() <> 0 then
      uo.warmode(0)
   endif
   uo.useskill('Hiding')
endsub
sub test()
   uo.msg("WalkN("+str(UO.GetX('self'))+","+str(UO.GetY('self'))+",'')")
   uo.msg("mining()")
endsub
sub mining()
   var mx, my, mz, i, j, f, rad=2
   mx = UO.GetX('self')
   my = UO.GetY('self')
   mz = UO.GetZ('self')
   for i = mx-rad to mx+rad
      for j = my-rad to my+rad
         repeat
            if uo.injournal('You loosen some rocks but fail') then
               wait(10000)
            endif
            if uo.dead() then
               uo.exec('terminate all')
            endif
            UO.Print('Mining in: '+str(mx-i)+' '+str(my-j))
            DigAhole(i,j,mz)
         until not uo.injournal('You loosen some rocks but fail')
      next
   next
   Drop()
endsub
Sub Drop()
   uo.findtype('0x19B9','0x0000','backpack')#iron
   if uo.findcount() > 0 then
      UO.Drop('-1',1,1,0,'finditem')
      wait(300)
   endif
   uo.findtype('0x19B9','0x0AB2','backpack')#copper
   if uo.findcount() > 0 then
      UO.Drop('-1',1,1,0,'finditem')
      wait(300)
   endif
   uo.findtype('0x19B9','0x0488','backpack')#bronze
   if uo.findcount() > 0 then
      UO.Drop('-1',1,1,0,'finditem')
   endif
endsub
sub DigAhole(i,j,mz)
   var f, tile=uo.hex2int(UO.PrivateGetTile(i, j, -1, 1339, 1363))
   if tile <= 0 then
      return
   endif
   pickaxe=uo.getserial(uo.objatlayer("Rhand"))
   for f=0 to 10
      checklag()
      uo.waittargettile(tile,i,j,mz)
      if uo.objatlayer("Rhand") then
         uo.useobject(pickaxe)
      else
         uo.usetype('0x0E86')
         wait(1000)
         pickaxe=uo.getserial(uo.objatlayer("Rhand"))
      endif   
      if waitforore() == 1 then
         return
      endif
   next
endsub
sub waitforore()
   var n
   for n=0 to 50
      if uo.injournal("no ore here|location|far away|in rock|You have been revealed|There is nothing|You can't reach|You put the Iron|You put the Copper|You put the Bronze|Try mining elsewhere") then
         return 1
      endif
      if uo.injournal('but fail|You put') then
         return
      endif
      wait(500)
   next
endsub
sub checklag()
   repeat
      UO.DeleteJournal()
      UO.Click('backpack')
   until backpack()==1
endsub
sub backpack()
   var n
   for n=0 to 200
      if uo.injournal('cliloc# 0xFEA1B') then
         return 1
      endif
      wait(200)
   next
endsub
sub WalkN(x,y,Target) ########################################## ???????
   VAR LastTimer
   LastTimer=UO.Timer()
   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"
   uo.say('')
   While Exit<>1
     
      If Target<>"" Then
         dx=UO.GetX(Target)-UO.GetX()
         dy=UO.GetY(Target)-UO.GetY()         
         If UO.GetDistance(Target)<2 OR LastTimer+100<UO.Timer() Then
            wait(1000)
            return
         Endif
      Else
         dx=x-UO.GetX()
         dy=y-UO.GetY()
         If dx==0 AND dy==0 OR LastTimer+100<UO.Timer() Then
            return
         Endif
      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
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
         ;zatik
         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
            ;zatik         
            ErrLevel=1
         Endif
      Endif
   Endif
   Return ErrLevel
end sub

_________________
Scripts writer Yoko Injection


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 4 posts ] 

All times are UTC + 2 hours [ DST ]


Who is online

Users browsing this forum: No registered users and 221 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group