Page 1 of 1

Неработает убегание

Posted: 2012-11-08 09:38:34
by tylllkah
Не реагирует на стенки

Code: Select all

sub maning()
   var mx, my, mz, i, j, jor, ser, noto
   uo.exec('terminate controlLopata')
   wait(200)
   uo.exec('terminate controlLopata')
   wait(200)
   Uo.exec("set norbcheck 1");
   uo.exec("set norbcalc 1");
   na4alo:
   noto=0
   mx = UO.GetX("self")
   my = UO.GetY("self")
   mz = UO.GetZ("self")
   UO.DeleteJournal()
   for i = mx-4 to mx+4
      for j = my -4 to my+4
         while not UO.Hidden()
            UO.Warmode(0)
            uo.print("Прячемся...")
            UO.UseSkill("Hiding")
            wait(2500)
         wend
         uo.exec('terminate control')
         wait(200)
         uo.exec('terminate control')
         wait(200)
         UO.Print("Копаем в координатх: "+str(mx-i)+" "+str(my-j))
         while not UO.InJournal("no ore here|location|far away|in rock|Iron Ore|Copper|Rusty Ore")
            UO.DeleteJournal()
            repeat
            if uo.life < 140 or uo.InJournal('In Sanct Ylem') or uo.InJournal('In Ex Grav') or uo.InJournal('In Sanct Grav') or uo.InJournal('[FRAERA]') then
            uo.Press(112)
            uo.exec('exec control')
            endif

Re: Неработает убегание

Posted: 2012-11-08 11:07:53
by Juicy Fruit

Code: Select all

uo.press(112)
Wait(200)
Uo.press(112)

Поставь, вместо одного нажатия, сначала меняется направление чара, потом делается шаг.
Можно для отладки сунуть туда uo.print("кастуют стенку") чтоб было видно, проканала проверка или нет.

Re: Неработает убегание

Posted: 2012-11-08 12:01:32
by tylllkah
Решил иначе, но пишет спид хак при убегании Джуси скинь пжл свою ходилку под ДРВ

Re: Неработает убегание

Posted: 2012-11-08 12:18:39
by Juicy Fruit
У меня встроенная, а которая скриптом – та паленая и кривая.

Re: Неработает убегание

Posted: 2012-11-08 12:48:35
by tylllkah
А как это встроенная?
Вопрос знатокам: кто может скинуть ходилку + бег для ДРВ?

Re: Неработает убегание

Posted: 2012-11-08 13:26:29
by Juicy Fruit
В инжект встроенна, как в стелсе, только у меня она кривоватая))

Re: Неработает убегание

Posted: 2012-11-08 14:09:29
by tylllkah
VAR walkwait=100 - это задержка от бега, на ДРВ она должна быть 200?

Code: Select all

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
   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
end sub
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
end sub
sub CheckLag()
   UO.DeleteJournal()
   UO.Click('backpack')
   repeat
      Wait(100)
   until UO.InJournal('ackpack')
end sub

Re: Неработает убегание

Posted: 2012-11-08 14:37:22
by Juicy Fruit
Смотря как идешь и бежишь, на форуме ДРВ поищи темку про сх детекты, там написаны задержки для шага и бега без хорсы и на ней.

Re: Неработает убегание

Posted: 2012-11-08 17:44:49
by tylllkah
начал сильно спамить

Re: Неработает убегание

Posted: 2012-11-08 18:03:55
by Juicy Fruit
tylllkah wrote:начал сильно спамить

Code: Select all

repeat # Этоможет быть причиной?

Немаловероятно, кинь оставшийся кусок кода до wend

Re: Неработает убегание

Posted: 2012-11-08 18:11:09
by tylllkah

Code: Select all

sub control() # если вас отаковали или пытаются заблокировать выход, чар бежит от пка, в данный момент в портал минока
uo.DeleteJournal()
repeat                # из за этого бегает туда сюда, типо только этот скрипт гонит, убираю, то не запускается
UO.Warmode(0)
uo.msg('\w Kot: Я ATAKOBAH!!!')
UO.Warmode(0)
uo.msg('\w Rekoshet: Я АТАКОВАН!!!')
UO.Warmode(0)
uo.canceltarget()
UO.Warmode(0)
uo.Press(112)
gohome()
wait(100)
binti1()
wait(700)
havka()
wait(700)
while not UO.Hidden()
UO.Warmode(0)
uo.print("Прячемся...")
UO.UseSkill("Hiding")
wait(2500)
wend
band()
wait(700)
loot2()
wait(700)
loot()
wait(700)
binti2()
wait(700)
while not UO.Hidden()
UO.Warmode(0)
uo.print("Прячемся...")
UO.UseSkill("Hiding")
wait(700)
wend
wait(200)
gomining()
wait(500)
until uo.dead()
end sub

и спамит...

Re: Неработает убегание

Posted: 2012-11-08 18:38:06
by Juicy Fruit

Code: Select all

sub maning()
   var mx, my, mz, i, j, jor, ser, noto
   na4alo:
   noto=0
   mx = UO.GetX("self")
   my = UO.GetY("self")
   mz = UO.GetZ("self")
   UO.DeleteJournal()
   for i = mx-4 to mx+4
      for j = my -4 to my+4
         while not UO.Hidden()
            UO.Warmode(0)
            uo.print("Прячемся...")
            UO.UseSkill("Hiding")
            wait(2500)
         wend
         UO.Print("Копаем в координатх: "+str(mx-i)+" "+str(my-j))
         while not UO.InJournal("no ore here|location|far away|in rock|Iron Ore|Copper|Rusty Ore")
            UO.DeleteJournal()
            if uo.waiting() then
               uo.canceltarget()
            endif
            UO.Waittargettile("1341", str(i), str(j), str(mz))
            If uo.count(Shovel) then
               uo.usetype(Shovel)
            else
               UO.Press(112)
               uo.exec('exec controlLopata')
            end if
            while not UO.InJournal("You put|heavy|location|no ore|but fail|far away|in rock")
               wait (500)
               if uo.injournal("heavy") or uo.dead() then
                  pwav() # Сообщение что появился елемент
               endif
               for jor = 0 to 9
                  ser = uo.journalserial(jor)
                  if ser == uo.getserial('self') then
                     noto = 0
                  else
                     noto = uo.getnotoriety(ser)
                  endif
                  if uo.life < 170 or uo.InJournal('In Sanct Ylem') or uo.InJournal('In Ex Grav') or uo.InJournal('In Sanct Grav') or uo.InJournal('[FRAERA]') then
                     control()
                  endif
               next
            wend
            if uo.weight > 700 then # Максимальный вес
               goto end
            endif
         wend
         UO.DeleteJournal()
      next
   next
   goto na4alo
   end:
   if uo.waiting() then
      uo.canceltarget()
   endif
   UO.Press(112)
   gohome()
   while not UO.Hidden()
      UO.Warmode(0)
      uo.print("Прячемся...")
      UO.UseSkill("Hiding")
      wait(2500)
   wend
   wait(3000)
   loot2()
   wait(1000)
   loot()
   wait(3000)
   havka()
   wait(2500)
   reccal:
   uo.deletejournal()
   if uo.waiting() then
      uo.canceltarget()
   endif
   gomining()
   wait(500)
   goto na4alo
end sub

sub control() # если вас отаковали или пытаются заблокировать выход, чар бежит от пка, в данный момент в портал минока
   uo.DeleteJournal()
   repeat                # из за этого бегает туда сюда, типо только этот скрипт гонит, убираю, то не запускается
      UO.Warmode(0)
      uo.msg('\w Kot: Я ATAKOBAH!!!')
      UO.Warmode(0)
      uo.msg('\w Rekoshet: Я АТАКОВАН!!!')
      UO.Warmode(0)
      uo.canceltarget()
      UO.Warmode(0)
      uo.Press(112)
      gohome()
      wait(100)
      binti1()
      wait(700)
      havka()
      wait(700)
      while not UO.Hidden() and not uo.dead()
         UO.Warmode(0)
         uo.print("Прячемся...")
         UO.UseSkill("Hiding")
         wait(2500)
      wend
      band()
      wait(700)
      loot2()
      wait(700)
      loot()
      wait(700)
      binti2()
      wait(700)
      while not UO.Hidden() and not uo.dead()
         UO.Warmode(0)
         uo.print("Прячемся...")
         UO.UseSkill("Hiding")
         wait(700)
      wend
      wait(200)
      gomining()
      wait(500)
      if not uo.dead() then
         return
      endif
   until uo.dead()
end sub

until от того рипита потерял где-то, рипит убрал. Во 2 функции жесть, бан чата не ловишь на минуту?)

Code: Select all

      uo.msg('\w Kot: Я ATAKOBAH!!!')
      UO.Warmode(0)
      uo.msg('\w Rekoshet: Я АТАКОВАН!!!')

Между мессагами задержку бы хотяб 500 сделать. Или в отдельную функцию их вывести и запускать её через uo.exec('exec bla'), чтоб не тратил время и сразу топал на выход.

Re: Неработает убегание

Posted: 2012-11-08 18:52:39
by tylllkah
а ты поставил, просто не пойму где...

Re: Неработает убегание

Posted: 2012-11-08 19:02:05
by Juicy Fruit

Code: Select all

repeat # Этоможет быть причиной?

Это убрал вообще.

Re: Неработает убегание

Posted: 2012-11-09 10:12:05
by tylllkah
cпс