Page 1 of 1

Хелп ИЗИ УО+Инжа (Догонялка NEEDED)

Posted: 2006-11-11 01:19:06
by BigMouseI
Тем кто понимает, люди, нашёл скрипт на догонялку на ИЗИ УО, но проблема:
1) Он гониться за теми, кто атачил чара или кого атачит чар, а хотелось бы за тем, кого надо указать (из инжи)
2) Собсно не знаю как из инжи вызвать этот скрипт...
Заранее спс.

Code: Select all

;==================================
; Script Name: follow enemy script/sub
; Author: Nilmer
; Version: 1.0
; Client Tested with: 4.0.1b
; EUO version tested with: V1.42 [Build 0066]
; Shard OSI / FS: OSI
; Revision Date:2/1/2004
; Public Release: 12/16/2003
; Purpose: follows enemy
;==================================
initevents
event macro 32
wait 1s
scanjournal %nil
if off. in #journal
event macro 32
top:
finditem #enemyid
if #findkind = -1
goto top
move #findx #findy 1
finditem #ltargetid
if #findkind = -1
{
wait 10
goto top
}
;=====end of nilmers followenemy.txt=====

Posted: 2006-11-11 02:26:50
by Nmy
незнаю, мне кажется что через журнал можно пробавать... хз хз...

лудше зделай догонялку на инже, кстати тут она тоже есть, я нашол, значит и другие смогут...

Posted: 2006-11-11 03:12:31
by Edred
SetEasyUO, GetEasyUO. Смотри хелп. Для примера смотри мои скрипты в топике с моим наследством. Я некоторое время использовал ходилку на изе для инжектовских скриптов. Потом вообще на изю перебрался.

Posted: 2006-11-11 03:17:35
by BigMouseI
NMY wrote:незнаю, мне кажется что через журнал можно пробавать... хз хз...

лудше зделай догонялку на инже, кстати тут она тоже есть, я нашол, значит и другие смогут...


Можешь дать ссылочку, ато изя с пасфайдом реально тупит...

Posted: 2006-11-11 10:38:41
by Nmy
поиск...

Posted: 2006-11-11 21:33:53
by BigMouseI
NMY wrote:поиск...


В поиске по слову Догонялка:

Во всех темах практически говорят пользовать Alt + Lclick, но эту комбинацию нельзя забиндить в инже + там догонялка бегает не вплотную.

Гдето посылают к скриптам на ходилки...

Гдето посылают в поиск...

В 1 месте наткнулся на скрипт:

Code: Select all

sub fol()
var x,y
while uo.getdistance('laststatus')>0
 x=uo.getx('laststatus')
 y=uo.gety('laststatus')
 go(x,y)
wend
endsub

Sub go(x,y)
  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"
 
    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   
end sub


Sub StepEdit(x,y,dir,key)
  VAR walkwait=50
  VAR ErrLevel=0
  If UO.GetDir()<>dir Then
    UO.Press(key)
    wait(walkwait)
    If UO.GetDir()<>dir Then
    Endif
  Endif
  UO.Press(key)
  wait(walkwait)
  If x==UO.GetX() AND y==UO.GetY() Then
    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=50
  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
      wait(10)
    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
      If UO.GetDir()==dir AND UO.GetX()==x AND UO.GetY()==y Then
; zatik     
        ErrLevel=1
      Endif
    Endif
  Endif
  Return ErrLevel
end sub

Но скрипт почемуто идёт вместо чара кудато вниз, при этом обходит все припятствия...

Также нашёл в инете скрипт на догонялку, но там толи недоставлен 1 While, толи лишний, из-за чего, при подходе к чару, догонялка даёт ошибку, если кто может помогите...

http://krelyn.h16.ru/phpBB2/viewtopic.php?t=2

Code: Select all

sub Walk(x,y)
go:
if uo.getY() > uo.gety("laststatus") then
 uo.press(33)
else
 uo.press(35)
endif
while not uo.getX() == uo.getx("laststatus") || not uo.getY() == uo.gety("laststatus")
 if not uo.getX() == uo.getx("laststatus") then
  if uo.getX() > uo.getx("laststatus") then
   if uo.getY() > uo.gety("laststatus") then
    uo.press(38)
   endif
   if uo.getY() < uo.gety("laststatus") then
    uo.press(37)
   endif
   if uo.getY() == uo.gety("laststatus") then
    uo.press(36)
   endif
  endif
  if uo.getX() < uo.getx("laststatus") then   
   if uo.gety() > uo.gety("laststatus") then
    uo.press(39)
   endif
   if uo.gety() < uo.gety("laststatus") then
    uo.press(40)
   endif
   if uo.gety() == uo.gety("laststatus") then
    uo.press(34)
   endif
  endif
 endif
wend
 if uo.getX() == uo.getx("laststatus") then
  if uo.gety() > uo.gety("laststatus") then
   uo.press(33)
  endif
  if uo.gety() < uo.gety("laststatus") then
   uo.press(35)
  endif
  if uo.gety() == uo.gety("laststatus") then
   wait(10)
  endif
 endif
wend
if uo.getx() == uo.getx("laststatus") then
 if uo.gety() == uo.gety("laststatus") then
  wait(10)
 endif
endif
end sub

Posted: 2006-11-12 13:35:52
by <FaTe>
Угу, догонялку fol каторая тоже находил, такая же фигня, галочку поставил тви, но прется в низ кудато.

Posted: 2006-11-12 18:05:53
by Waterboy
Ай АЙ АЙ......
А без нее никак уже?! :?: :?:

Posted: 2006-11-12 20:27:51
by <FaTe>
Waterboy wrote:Ай АЙ АЙ......
А без нее никак уже?! :?: :?:

Ну я то и так без нее, но бывают случаи когда пригодилась бы.)

Posted: 2006-11-12 20:46:16
by BigMouseI
Waterboy wrote:Ай АЙ АЙ......
А без нее никак уже?! :?: :?:


Ватер, нам <не на ДРВ>... +)

Posted: 2006-11-13 01:42:54
by BigMouseI
Ну же, эксперта помогите пжста.

Posted: 2006-11-13 03:47:04
by BigMouseI
В общем разобрался, оказалось 1 wend был лишним.

Code: Select all

sub Walk(x,y)
go:
if uo.getY() > uo.gety("laststatus") then
 uo.press(33)
else
 uo.press(35)
endif
while not uo.getX() == uo.getx("laststatus") || not uo.getY() == uo.gety("laststatus")
 if not uo.getX() == uo.getx("laststatus") then
  if uo.getX() > uo.getx("laststatus") then
   if uo.getY() > uo.gety("laststatus") then
    uo.press(38)
   endif
   if uo.getY() < uo.gety("laststatus") then
    uo.press(37)
   endif
   if uo.getY() == uo.gety("laststatus") then
    uo.press(36)
   endif
  endif
  if uo.getX() < uo.getx("laststatus") then   
   if uo.gety() > uo.gety("laststatus") then
    uo.press(39)
   endif
   if uo.gety() < uo.gety("laststatus") then
    uo.press(40)
   endif
   if uo.gety() == uo.gety("laststatus") then
    uo.press(34)
   endif
  endif
 endif
 if uo.getX() == uo.getx("laststatus") then
  if uo.gety() > uo.gety("laststatus") then
   uo.press(33)
  endif
  if uo.gety() < uo.gety("laststatus") then
   uo.press(35)
  endif
  if uo.gety() == uo.gety("laststatus") then
   wait(10)
  endif
 endif
wend
if uo.getx() == uo.getx("laststatus") then
 if uo.gety() == uo.gety("laststatus") then
  wait(10)
 endif
endif
end sub


Работает, правда 1 НО: Она препятствия не обходит и если человека не видно то уходит кудато вверх, такчто используя её нада включать моск!