Yoko

All sides of Injection
It is currently 2025-11-23 03:57:43

All times are UTC+02:00




Post new topic  Reply to topic  [ 27 posts ]  Go to page 1 2 Next
Author Message
PostPosted: 2004-10-14 18:20:23 
Offline

Joined: 2004-10-13 12:52:35
Posts: 13
Народ дайте нормальную процедуру хождения. Взял из Lumberjecking-а а она как то криво ходит и дойти до нужной точки не могет совсем... Может более продвинутое что есть?


Top
   
 Post subject:
PostPosted: 2004-10-14 19:44:05 
Offline
Expert!
User avatar

Joined: 2004-04-04 21:40:09
Posts: 1007
Бери Yoko'вскую. Все мои боты на ней, ни разу не подводила.


Top
   
 Post subject:
PostPosted: 2004-10-14 22:12:34 
Offline
Junior Expert
User avatar

Joined: 2004-04-12 20:26:41
Posts: 150
А у меня получалось её запороть


Top
   
 Post subject:
PostPosted: 2004-10-15 01:16:42 
Offline
Expert!

Joined: 2004-06-04 03:24:25
Posts: 333
Ex-Brodyaga wrote:
А у меня получалось её запороть

ну, брат, таков уж инжект... ну не предназначен он для ходьбы, как ни крути... так что, даю гарантию 100%, что смогу запороть любую ходилку на инжекте с его нынешними возможностями из числа тех, что есть в документации. %)


Top
   
 Post subject:
PostPosted: 2004-10-15 02:05:47 
Offline
User avatar

Joined: 2004-04-19 14:50:01
Posts: 27
Вот три (вроде :lol: ночь на дворе никак в бардаке своём не разберусь ) ходилки из моего безумного майнинг скрипта. Одна Савы, и ещё пара хз каких. Мне в скрипте нужны все три =) Но самая хорошая на мой взгляд\тест первая, но ей не получится ходить на гейты.


Code:

sub walk(dx,dy)
   VAR i, walkwait=300
   If dx<>0 then
      If dx>0 then
         If UO.GetDir()<>2 then
            UO.Press(34)
            wait(walkwait)
            CheckPause()
         Endif
         For i=1 to dx
            UO.Press(34)
            wait(walkwait)
            CheckPause()
         next
      Else
         If UO.GetDir()<>6 then
            UO.Press(36)
            wait(walkwait)
            CheckPause()
         Endif
         For i=1 to dx*-1
            UO.Press(36)
            wait(walkwait)
            CheckPause()
         next
      Endif

   endif
   
   If dy<>0 then
      If dy>0 then
         If UO.GetDir()<>4 then
            UO.Press(35)
            wait(walkwait)
            CheckPause()
         Endif
         For i=1 to dy
            UO.Press(35)
            wait(walkwait)
            CheckPause()
         next
      Else
         If UO.GetDir()<>0 then
            UO.Press(33)
            wait(walkwait)
            CheckPause()
         Endif
         For i=1 to dy*-1
            UO.Press(33)
            wait(walkwait)
            CheckPause()
         next
      Endif
   endif
   wait(1000)
end sub
sub bandage()
   UO.exec('setarm 5')
   UO.exec('bandageself')
   wait(1000)
   UO.exec('arm 5')
end sub



sub Move_play(path)
   var x=val(left(path,4))
   var y=val(mid(path,4,4))
   var i=8,f
   uo.print(path)
   move(x,y)
   move(x,y)
   while i<len(path)
      f=val(path[i])
      if f then
         i=i+1
        else
           f=1
      endif
      while f
         Move_Step(path[i])
         f=f-1
      wend
      i=i+1
   wend
endsub
   
sub Move_rec()
   var nx,ny,x=uo.getx(),y=uo.gety(),s="0000",path=""
   var npath=left(s,len(s)-len(str(x)))+str(x)+left(s,len(s)-len(str(y)))+str(y)
   var  m="-SN-EDR-WLU",xp="-11-222-000",yp="-20-120-120"
   UO.DeleteJournal()
   while (UO.InJournal("stop")==0)
      nx=UO.GetX()
      ny=UO.GetY()
      s=(ny>y)+2*(ny<y)+4*(nx>x)+8*(nx<x)
      if s<>0 then
         path=path+m[s]
         x=x+val(xp[s])-1
         y=y+val(yp[s])-1
        else
         wait(10)
      endif
   wend
   x=0
   while x<len(path)
      y=1
      while path[x]==path[x+1] AND y<9
         x=x+1
         y=y+1
      wend
      if y==1 then
         nPath=nPath+path[x]
        else
         nPath=nPath+STR(y)+path[x]
      endif
      x=x+1
   wend
   return npath
end sub

sub Move_Step(dir)
   var M="NESWLURD"
   var X="12100022"
   var Y="01212002"
   for var i=0 to len(M)-1
      if dir==M[i] then
         return move(uo.GetX()+val(X[i])-1,uo.GetY(i)+val(Y[i])-1)
      endif
   next
   uo.print("dir "+dir+" not defined")
   return 0
end sub

sub Move(x,y)
   var cx,cy,e=0,dir=1,M="-40-231-657"
   while dir<>0
      cx=uo.getx()
      cy=uo.gety()
      dir=(cy<y)+2*(cy>y)+4*(cx<x)+8*(cx>x)
      if dir<>0 then
         MoveK(val(M[dir]))
         if cx==uo.getx() && cy==uo.gety() then
            e=e+1
            if e==40 then
               return 0
            endif
           else
              e=0
         endif
      endif
   wend
   return 1
endsub

sub MoveK(dir)
   var x,y,time,Key="06172435"
   if UO.GetDir()<>dir then
      UO.Press(val(Key[dir])+33)
      time=500
      if UO.GetDir()<>dir then
         if time==0 then
            return 0
         endif
         wait(5)
         time=time-5
      endif
   endif
   x=UO.GetX()
   y=UO.GetY()
   time=500
   UO.Press(val(Key[dir])+33)
   while x==UO.GetX() && y==UO.GetY() && time>0
      time=time-5
      wait(5)
   wend
   return time>0   
end sub


sub WalkN(x,y,Target)
   VAR i
   VAR dx,dy,Exit=0
   
   While Exit<>1   
      If Target<>"" Then
         dx=UO.GetX(Target)-UO.GetX()
         dy=UO.GetY(Target)-UO.GetY()
;         UO.Print("Target locked!")
         If UO.GetDistance(Target)<2 Then
            Exit=1
         Endif
      Else
         dx=x-UO.GetX()
         dy=y-UO.GetY()
         If dx+dy==0 Then
            Exit=1
         Endif

      Endif
   
      If dx<>0 AND dy<>0 Then
         If dx>0 AND dy>0 Then
            GoSE()
         Endif

         If dx>0 AND dy<0 Then
            GoNE()
         Endif

         If dx<0 AND dy>0 Then
            GoSW()
         Endif

         If dx<0 AND dy<0 Then
            GoWN()
         Endif

      Endif
   
      If dx<>0 AND dy==0 Then
         If dx>0 Then
            GoE()
         Endif
         
         If dx<0 Then
            GoW()
         Endif
      Endif


      If dx==0 AND dy<>0 Then
         If dy>0 Then
            GoS()
         Endif
         
         If dy<0 Then
            GoN()
         Endif
      Endif
   Wend
end sub





sub GoW()
   VAR walkwait=300
   VAR x,y,dir=6
   VAR key=36 ; Home key
   x=UO.GetX()
   y=UO.GetY()
   while UO.GetDir()<>dir
      UO.Press(key)
      wait(walkwait)
      If UO.GetDir()<>dir Then
         CheckLag()
      Endif
   wend
   UO.Press(key)

   wait(walkwait)
      If x==UO.GetX() AND y==UO.GetY() Then
         CheckLag()
      Endif
   
   If UO.GetX()+1==x Then
      return -1
   Else
      return 1
   Endif
end sub


sub GoN()
   VAR walkwait=300
   VAR x,y,dir=0
   VAR key=33 ; PgUp
   x=UO.GetX()
   y=UO.GetY()
   while UO.GetDir()<>dir
      UO.Press(key)
      wait(walkwait)
      If UO.GetDir()<>dir Then
         CheckLag()
      Endif
   wend
   UO.Press(key)

   wait(walkwait)
      If x==UO.GetX() AND y==UO.GetY() Then
         CheckLag()
      Endif
   
   If UO.GetY()+1==y Then
      return -1
   Else
      return 1
   Endif
end sub


sub GoE()
   VAR walkwait=300
   VAR x,y,dir=2
   VAR key=34 ; PgDown
   x=UO.GetX()
   y=UO.GetY()
   while UO.GetDir()<>dir
      UO.Press(key)
      wait(walkwait)
      If UO.GetDir()<>dir Then
         CheckLag()
      Endif
   wend
   UO.Press(key)

   wait(walkwait)
      If x==UO.GetX() AND y==UO.GetY() Then
         CheckLag()
      Endif
   
   If UO.GetX()-1==x Then
      return -1
   Else
      return 1
   Endif
end sub


sub GoS()
   VAR walkwait=300
   VAR x,y,dir=4
   VAR key=35 ; End
   x=UO.GetX()
   y=UO.GetY()
   while UO.GetDir()<>dir
      UO.Press(key)
      wait(walkwait)
      If UO.GetDir()<>dir Then
         CheckLag()
      Endif
   wend
   UO.Press(key)

   wait(walkwait)
      If x==UO.GetX() AND y==UO.GetY() Then
         CheckLag()
      Endif
   
   If UO.GetY()-1==y Then
      return -1
   Else
      return 1
   Endif
end sub


sub GoWN()
   VAR walkwait=300
   VAR x,y,dir=7
   VAR key=38 ; UpArrow
   x=UO.GetX()
   y=UO.GetY()

   If UO.GetDir()<>dir Then
      UO.Press(key)
      wait(walkwait)
      If UO.GetDir()<>dir Then
         CheckLag()
      Endif
   Endif

   If UO.GetDir()==dir Then
      UO.Press(key)
      wait(walkwait)
      If x==UO.GetX() AND y==UO.GetY() Then
         CheckLag()
      Endif
      If UO.GetDir()==dir Then
         return -1
      Else
         return UO.GetDir()
      Endif
   Else
      return UO.GetDir()
   Endif
end sub


sub GoNE()
   VAR walkwait=300
   VAR x,y,dir=1
   VAR key=39 ; RightArrow
   x=UO.GetX()
   y=UO.GetY()

   If UO.GetDir()<>dir Then
      UO.Press(key)
      wait(walkwait)
      If UO.GetDir()<>dir Then
         CheckLag()
      Endif
   Endif

   If UO.GetDir()==dir Then
      UO.Press(key)
      wait(walkwait)
      If x==UO.GetX() AND y==UO.GetY() Then
         CheckLag()
      Endif
      If UO.GetDir()==dir Then
         return -1
      Else
         return UO.GetDir()
      Endif
   Else
      return UO.GetDir()
   Endif
end sub


sub GoSE()
   VAR walkwait=300
   VAR x,y,dir=3
   VAR key=40 ; DownArrow
   x=UO.GetX()
   y=UO.GetY()

   If UO.GetDir()<>dir Then
      UO.Press(key)
      wait(walkwait)
      If UO.GetDir()<>dir Then
         CheckLag()
      Endif
   Endif

   If UO.GetDir()==dir Then
      UO.Press(key)
      wait(walkwait)
      If x==UO.GetX() AND y==UO.GetY() Then
         CheckLag()
      Endif
      If UO.GetDir()==dir Then
         return -1
      Else
         return UO.GetDir()
      Endif
   Else
      return UO.GetDir()
   Endif
end sub


sub GoSW()
   VAR walkwait=300
   VAR x,y,dir=5
   VAR key=37 ; LeftArrow
   x=UO.GetX()
   y=UO.GetY()

   If UO.GetDir()<>dir Then
      UO.Press(key)
      wait(walkwait)
      If UO.GetDir()<>dir Then
         CheckLag()
      Endif
   Endif

   If UO.GetDir()==dir Then
      UO.Press(key)
      wait(walkwait)
      If x==UO.GetX() AND y==UO.GetY() Then
         CheckLag()
      Endif
      If UO.GetDir()==dir Then
         return -1
      Else
         return UO.GetDir()
      Endif
   Else
      return UO.GetDir()
   Endif
end sub





sub gotoxy(x,y,prec)
   var ld=0,ldc=0
   var dx,dy
   var mx,my
   var ox,oy,mk,k
#uo.print(">")
#uo.track("1",str(x),str(y))
start:
mx=UO.GetX()
my=UO.GetY()
dx=mx-x
if dx<0 then
dx=0-dx
endif
dy=my-y
if dy<0 then
dy=0-dy
endif
if dy>dx then
dx=dy
end if
if dx<=prec then
return
end if
if not ldc then
uo.print(STR(dx))
end if
if dx<3 then
mk=70
else
mk=15
end if
ox=mx
oy=my
for k=1 to mk
mx=UO.GetX()
my=UO.GetY()
if mx<>ox or my<>oy then
goto sdidapl
end if
wait(10)
next
sdidapl:
mx=UO.GetX()
my=UO.GetY()
dx=mx-x
if dx<0 then
dx=0-dx
endif
dy=my-y
if dy<0 then
dy=0-dy
endif
if dy>dx then
dx=dy
end if
if dx<=prec then
return
end if
if ld==dx then
ldc=ldc+1
if ldc>100 then
uo.print("Can not reach location!")
return
end if
else
ld=dx
end if
if mx==x then
if my==y then
return
endif
if my>y then
#UO.Print("UR")
UO.Press(33)
goto start
endif
#UO.Print("DL")
UO.Press(35)
goto start
end if
if mx<x then
if my>y then
#UO.Print("R")
UO.Press(39)
goto start
endif
if my==y then
#UO.Print("DR")
UO.Press(34)
goto start
endif
#UO.Print("D")
UO.Press(40)
goto start
end if
if my<y then
#UO.Print("L")
UO.Press(37)
goto start
endif
if my==y then
#UO.Print("LU")
UO.Press(36)
goto start
endif
#UO.Print("U")
UO.Press(38)
goto start
end sub
 

_________________
"...было бы величайшей ошибкой думать."
В.И.Ленин


Top
   
 Post subject:
PostPosted: 2004-10-15 16:19:23 
Offline
Expert!

Joined: 2004-06-04 03:24:25
Posts: 333
bbp wrote:
Вот три (вроде :lol: ночь на дворе никак в бардаке своём не разберусь ) ходилки из моего безумного майнинг скрипта. Одна Савы, и ещё пара хз каких. Мне в скрипте нужны все три =) Но самая хорошая на мой взгляд\тест первая, но ей не получится ходить на гейты.

читать гигабайты скриптов - это, конечно, здорово... но ты бы хоть в разные поля вставлял разное... в смысле, чтобы все версии не сливались в одну общую кучу - и разбирай потом как знаешь, а каждая была бы взята в свой тег code.


Top
   
 Post subject:
PostPosted: 2004-10-15 16:38:36 
Offline

Joined: 2004-10-13 12:52:35
Posts: 13
2 AGRS
А что за процедура от Yoko?

На мой взгляд самая нормальная процедура обхода это та которая в EasyUO но в Injection ее нету... :-( Может аналоги хотябы скажите чтоб препядствия обходила...

Попробовал написаные процедуры. Все затыкаются когда доходят до препятствия и даже не пробуют его обойти :-( Все равно спасибо...


Top
   
 Post subject:
PostPosted: 2004-10-15 18:40:48 
Offline
Expert!
User avatar

Joined: 2004-04-04 21:40:09
Posts: 1007
Andrey wrote:
2 AGRS
А что за процедура от Yoko?


http://yoko.netroof.net/forum/viewtopic.php?t=804


Top
   
 Post subject:
PostPosted: 2004-10-15 19:16:34 
Offline
Expert!

Joined: 2004-06-04 03:24:25
Posts: 333
Andrey wrote:
2 AGRS
А что за процедура от Yoko?

На мой взгляд самая нормальная процедура обхода это та которая в EasyUO но в Injection ее нету... :-( Может аналоги хотябы скажите чтоб препядствия обходила...

Попробовал написаные процедуры. Все затыкаются когда доходят до препятствия и даже не пробуют его обойти :-( Все равно спасибо...

обходить препятствия и на инжекте можно попробовать, но это будет "поиск вслепую"... такой скрипт даже из маленького дома с одним столом и одним стулом и снятой дверью, при неудачном стечении обстоятельств (коннект и лаги в рассчет не принимаем, а только наше положение относительно выхода), может выбраться только через несколько часов...


Top
   
 Post subject:
PostPosted: 2004-10-15 23:06:41 
Offline
Expert!
User avatar

Joined: 2004-04-04 21:40:09
Posts: 1007
На чем угодно не выберется если нет карты проходимости или хотябы шанса ее составить. %)


Top
   
 Post subject:
PostPosted: 2004-10-15 23:20:15 
Offline
Expert!

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

а ты пробовал её составлять? чтобы такое осуществить силами инжекта - надо очень много номеров тайлов и обжект тайпов в скрипт переписать, по которым нельзя пройти, после чего долго и упорно перебитать их по всем клеткам вокруг себя... в принципе, если извратнуться с waittargettile или, что еще лучше, с privatedig (в версии от 25.09.2004), то на эту байду уйдет тонна времени, но карту проходимости ты составишь, и легко пройдешь, оптимальным путем, но затраты времени будут неимоверно большие, чем при поиске вслепую.


Top
   
 Post subject:
PostPosted: 2004-10-16 06:30:28 
Offline
Expert!
User avatar

Joined: 2004-04-04 21:40:09
Posts: 1007
Это фигня. У нас же теоретический вопрос. Проблему составят именно динамические объекты. Инфу о них взять негде.


Top
   
 Post subject:
PostPosted: 2004-10-16 08:59:32 
Offline
Expert!
User avatar

Joined: 2004-05-31 09:31:51
Posts: 838
GrayLord wrote:
Andrey wrote:
2 AGRS
А что за процедура от Yoko?

На мой взгляд самая нормальная процедура обхода это та которая в EasyUO но в Injection ее нету... :-( Может аналоги хотябы скажите чтоб препядствия обходила...

Попробовал написаные процедуры. Все затыкаются когда доходят до препятствия и даже не пробуют его обойти :-( Все равно спасибо...

обходить препятствия и на инжекте можно попробовать, но это будет "поиск вслепую"... такой скрипт даже из маленького дома с одним столом и одним стулом и снятой дверью, при неудачном стечении обстоятельств (коннект и лаги в рассчет не принимаем, а только наше положение относительно выхода), может выбраться только через несколько часов...


Обрадую......Ходика такая была написана буквально 3 дня назад ...Скриптер Асканели (запомните это имя)....
Обход препятствий, работа с растоянием
Выход и из комнаты и обход скал по большому кругу .....и при этом ОФИГЕННАЯ скорость .....работа по 8 направлениям .....Вобщем пока не универсал,нужно сделять фишку Савы с подходом по айди ....но работаем

_________________
Все просто.
BETEPAH ™


Top
   
 Post subject:
PostPosted: 2004-10-16 20:08:36 
Offline

Joined: 2004-10-13 12:52:35
Posts: 13
2 ВЕТЕРАН

Респект. Кинь ссылку плз если есть...

2 GrayLord

А почему бы не сделать поиск случайным? Те движение в случайном направлении причем вероятность идти в сторону изначального направления выше... Короче щас ссылку дам. http://algolist.manual.ru/games/smartmove.php


Top
   
 Post subject:
PostPosted: 2004-10-16 21:39:52 
Offline

Joined: 2004-09-27 21:42:27
Posts: 87
А что такое privatedig?
А где взять эту самую версию с ней?


Top
   
 Post subject:
PostPosted: 2004-10-16 21:40:03 
Offline
Sphere expert
User avatar

Joined: 2004-10-01 08:27:38
Posts: 1143
Location: Уфа
Andrey wrote:
2 ВЕТЕРАН

Респект. Кинь ссылку плз если есть...

2 GrayLord

А почему бы не сделать поиск случайным? Те движение в случайном направлении причем вероятность идти в сторону изначального направления выше... Короче щас ссылку дам. http://algolist.manual.ru/games/smartmove.php


Случайный поиск не канает !!! Скорость низкая !!! Это то меня и не устраивало во всех ходилках которые я нашёл !!! И рано или позже чар начинал тыкатся об стенку !!!
Мой чар на моей ходилке напрямую прётся туда куда надо и при этом с умом обходит все препятствия без лишьних нарезаний кругов !!!


Top
   
 Post subject:
PostPosted: 2004-10-18 11:49:05 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
Askaneli wrote:
Мой чар на моей ходилке напрямую прётся туда куда надо и при этом с умом обходит все препятствия без лишьних нарезаний кругов !!!


Дык код в студию! Посмотрим, потестим... ;)


Top
   
 Post subject:
PostPosted: 2004-10-18 14:15:30 
Offline
Sphere expert
User avatar

Joined: 2004-10-01 08:27:38
Posts: 1143
Location: Уфа
Edred wrote:
Askaneli wrote:
Мой чар на моей ходилке напрямую прётся туда куда надо и при этом с умом обходит все препятствия без лишьних нарезаний кругов !!!


Дык код в студию! Посмотрим, потестим... ;)

Я уже протестил и ВЕТЕРан тоже протестил, ему понравилось !!! Спасибо !!!

_________________
Сделал дело - флуди смело !!!


Top
   
 Post subject:
PostPosted: 2004-10-19 00:32:09 
Offline
Expert!

Joined: 2004-06-04 03:24:25
Posts: 333
Andrey wrote:
2 GrayLord

А почему бы не сделать поиск случайным? Те движение в случайном направлении причем вероятность идти в сторону изначального направления выше... Короче щас ссылку дам. http://algolist.manual.ru/games/smartmove.php

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


Top
   
 Post subject:
PostPosted: 2004-10-19 00:36:22 
Offline
Expert!

Joined: 2004-06-04 03:24:25
Posts: 333
Askaneli wrote:
Andrey wrote:
2 ВЕТЕРАН

Респект. Кинь ссылку плз если есть...

2 GrayLord

А почему бы не сделать поиск случайным? Те движение в случайном направлении причем вероятность идти в сторону изначального направления выше... Короче щас ссылку дам. http://algolist.manual.ru/games/smartmove.php


Случайный поиск не канает !!! Скорость низкая !!! Это то меня и не устраивало во всех ходилках которые я нашёл !!! И рано или позже чар начинал тыкатся об стенку !!!
Мой чар на моей ходилке напрямую прётся туда куда надо и при этом с умом обходит все препятствия без лишьних нарезаний кругов !!!

пока что кроме восклицаний мы ничего не услышали и не увидели от тебя в этой теме, и кто там чего тестил - неизвестно. если не желаешь делиться с людьми опытом, и хочешь от народа денег за скрипт - размещай рекламу на microdoft.com.


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 27 posts ]  Go to page 1 2 Next

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 3 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