Yoko

All sides of Injection
It is currently 2025-11-05 12:53:23

All times are UTC+02:00




Post new topic  Reply to topic  [ 8 posts ] 
Author Message
PostPosted: 2006-02-14 23:37:33 
Offline

Joined: 2004-10-30 21:28:19
Posts: 76
Короче есть ходилка, нужно что бы чар ходил только в хайде если он раздетектился то останавливается и продолжает движение только в хайде! Куда только не пихал саб на хайд методом тыка нихрина не получалось помогите плиз!!!!!


Code:
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 and uo.weight<MaxVes then
  minround()
  endif 
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


Top
   
 Post subject:
PostPosted: 2006-02-14 23:56:45 
Offline
Expert!

Joined: 2004-06-04 03:24:25
Posts: 333
а для чего мучить ходилку? в основном скрипте напиши, чтобы делал по одному шагу, после чего проверял, в хайде, иль нет.


Top
   
 Post subject:
PostPosted: 2006-02-15 05:42:39 
Offline

Joined: 2004-10-30 21:28:19
Posts: 76
GrayLord wrote:
а для чего мучить ходилку? в основном скрипте напиши, чтобы делал по одному шагу, после чего проверял, в хайде, иль нет.


В скрипте прописано, когда он капает он перед каждой координатой стоновится в хайд! тут тема в том что он иден не в хайде к началу копания и на выгруз, а если до этого выкапал элема то обязательно на него нарывается!


Top
   
 Post subject:
PostPosted: 2006-02-15 11:10:55 
Offline

Joined: 2004-10-30 21:28:19
Posts: 76
235168 wrote:
Balu wrote:
GrayLord wrote:
а для чего мучить ходилку? в основном скрипте напиши, чтобы делал по одному шагу, после чего проверял, в хайде, иль нет.


В скрипте прописано, когда он капает он перед каждой координатой стоновится в хайд! тут тема в том что он иден не в хайде к началу копания и на выгруз, а если до этого выкапал элема то обязательно на него нарывается!


в самой уо попробуй выключить always run. и добавь строчки перед каждым юзанием кирки

Да стоит у меня перед киркой хайд! скрипт с перевесом если перевес он идет к сундуку и сбрасывает в него всё вот когда он мдет к сундуку он не хайдится а надо что бы шёл в хайде, иначе ранее выкопаный элементаль убивает макрос. Вот и всё!


Top
   
 Post subject:
PostPosted: 2006-02-15 11:21:10 
Offline
Expert!

Joined: 2004-06-04 03:24:25
Posts: 333
Balu wrote:
235168 wrote:
Balu wrote:
GrayLord wrote:
а для чего мучить ходилку? в основном скрипте напиши, чтобы делал по одному шагу, после чего проверял, в хайде, иль нет.


В скрипте прописано, когда он капает он перед каждой координатой стоновится в хайд! тут тема в том что он иден не в хайде к началу копания и на выгруз, а если до этого выкапал элема то обязательно на него нарывается!


в самой уо попробуй выключить always run. и добавь строчки перед каждым юзанием кирки

Да стоит у меня перед киркой хайд! скрипт с перевесом если перевес он идет к сундуку и сбрасывает в него всё вот когда он мдет к сундуку он не хайдится а надо что бы шёл в хайде, иначе ранее выкопаный элементаль убивает макрос. Вот и всё!

так вот там, где он идет к сундуку и делай "пошаговый режим" и перед каждым шагом проверяй - спрятан ли ты =)


Top
   
 Post subject:
PostPosted: 2006-02-15 11:27:09 
Offline

Joined: 2004-10-30 21:28:19
Posts: 76
GrayLord wrote:
Balu wrote:
235168 wrote:
Balu wrote:
GrayLord wrote:
а для чего мучить ходилку? в основном скрипте напиши, чтобы делал по одному шагу, после чего проверял, в хайде, иль нет.


В скрипте прописано, когда он капает он перед каждой координатой стоновится в хайд! тут тема в том что он иден не в хайде к началу копания и на выгруз, а если до этого выкапал элема то обязательно на него нарывается!


в самой уо попробуй выключить always run. и добавь строчки перед каждым юзанием кирки

Да стоит у меня перед киркой хайд! скрипт с перевесом если перевес он идет к сундуку и сбрасывает в него всё вот когда он мдет к сундуку он не хайдится а надо что бы шёл в хайде, иначе ранее выкопаный элементаль убивает макрос. Вот и всё!

так вот там, где он идет к сундуку и делай "пошаговый режим" и перед каждым шагом проверяй - спрятан ли ты =)


Так я так себе это и представлял! а как это в виде скрипта отобразить?


Top
   
 Post subject:
PostPosted: 2006-02-15 12:19:43 
Offline
User avatar

Joined: 2005-02-25 13:31:26
Posts: 62
Location: DRW, [Hussars]
Ну, например, перед каждым UO.Press(key) пропиши функцию проверки на хайд.


Top
   
 Post subject:
PostPosted: 2006-02-15 12:59:08 
Offline
Expert!

Joined: 2004-06-04 03:24:25
Posts: 333
просто, либо ходилка должна работать в пошаговом режиме - сказали "иди туда-то", а она делает всего один шаг, в заданном направлении. а перед вызовом ходилки - проверяем хайд. или придется, долго-долго, вставлять в ходилку проверку на хайд.
то есть, написать что-то типа
Code:
sub hide()
while not uo.hidden('self')
uo.useskill('Hiding')
wait(500)
wend
endsub

и вызывать её перед каждым uo.press(key), или ежели ходилку "пошаговой" сделаешь, то просто перед вызовом ходилки.


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

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 6 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:  
cron
Powered by phpBB® Forum Software © phpBB Limited