Yoko

All sides of Injection
It is currently 2026-01-19 19:43:09

All times are UTC+02:00




Post new topic  Reply to topic  [ 10 posts ] 
Author Message
PostPosted: 2006-03-03 13:34:24 
Offline

Joined: 2005-04-21 18:29:21
Posts: 44
Вообщем ситуация такая: Рублю лес, подомной появляеться тварь и начинает меня бить в упор. Мне надо чтоб отбегало от неё на на 2-3 шага....Может есть у кого ходилка с такими возможностями и желательно без АСМ....? :shock:

Или кому не трудно обьясните что изменить в СуперВолк чтобы можно было выполнять такую задучу :?:

Code:
sub SuperWalk(x,y,Target) 
   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   
      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==0 AND dy==0 Then
            Exit=1
         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


#==============================================================
#  CheckLag() - click on backpack and awaiting "backpack"
#               message in journal.
#
#  Journal has been deleted!!!
#--------------------------------------------------------------
sub CheckLag()
   UO.DeleteJournal()
   UO.Click('backpack')
   repeat
      wait(500)
   until UO.InJournal('backpack')
end sub

_________________
xzxzxz


Top
   
 Post subject:
PostPosted: 2006-03-03 16:11:55 
Offline
Expert!
User avatar

Joined: 2004-04-04 11:13:54
Posts: 1205
Location: Балаково, Саратовская обл.
Простыми изменениями на отбегание не переделать. Как вариант можно вычислять координаты противоположного от монстра направления и бежать туда но моно напороться на непроходимый тайл, тогда ходилка встрянет и тебя качественно убъют. Да иходит она медленно для отбегания.


Top
   
 Post subject:
PostPosted: 2006-03-03 17:47:12 
Offline

Joined: 2005-04-21 18:29:21
Posts: 44
Ходит вполне прилично, т.к. монстр медленный и когда не стоит к тебе в упор пытаеться кастовать. Сообственно пытался с помощью ходилки отходить в противоположную сторону, тогда какраз это и стало проблемой из-за непроходимых тайлов(камни/кусты/деревья) - их там много, это лес. Потому и оббратился на форум, может люди бывалые помогут чем :oops:

_________________
xzxzxz


Top
   
PostPosted: 2006-03-03 17:56:36 
Offline

Joined: 2006-02-03 11:32:16
Posts: 256
Location: ND
а уменя стоит ЭПХХ. И что? Я же тебе ГБЦ не делал и не ставил. Но мы списывались на эту тему. И я пока в раздумьях, как совместить время, пространства и деньги. А так же прислушиваюсь к любой ин
Дык я тоже сзади мордой у земли сколько катался, все выслушивал))) Эт как же?! Можно из багажника свеситься. Ессено с кем нибудь за рулем совершенно верно, так и делал, сидел в ба


Last edited by LordTom on 2009-12-23 20:22:44, edited 3 times in total.

Top
   
 Post subject:
PostPosted: 2006-03-03 18:35:21 
Offline

Joined: 2005-04-21 18:29:21
Posts: 44
Так и делаю, дело в том что киляю его магией, а монстр появляеться чётко подомной и начинает касты сбивать, поэтому прежде чем монстр таки умирает он иногда успевает снести 20-60хп. :roll:

_________________
xzxzxz


Top
   
PostPosted: 2006-03-03 19:06:07 
Offline

Joined: 2006-02-03 11:32:16
Posts: 256
Location: ND
да в любом случае нельзя так дико осуждать нынешних репперов,они,многие из них прошли он тяжелый путь к соаве,так сказать из грязи в князи,eminem 50 cent,и они по-праву имеют такую возможность как и
На тему Fallout. Вы слишком долго играли в Fallout, если Вы оскорбляете своих друзей, используя выражение: "Ну конечно, стреляй мне в спину, Ян" (или Маркус, или Вик, или Сулик…). Вы, нако


Last edited by LordTom on 2009-12-23 16:43:29, edited 3 times in total.

Top
   
 Post subject:
PostPosted: 2006-03-03 22:41:17 
Offline
Expert!
User avatar

Joined: 2004-04-04 11:13:54
Posts: 1205
Location: Балаково, Саратовская обл.
Лорд, не в обиду, давай больше по делу пости. Тут в основном вопросы задают люди, далекие от программирования, так вот, если хочешь им помочь, пости готовые решения + минимум объяснений как это прикурутить к скрипту который они выкладывают.


Top
   
 Post subject:
PostPosted: 2006-03-03 23:25:56 
Offline

Joined: 2005-04-21 18:29:21
Posts: 44
Да ябы так и сделал и от программирования не слишком далёкий :) Просто шард у нас такой что банят за инжу слишком часто :D И все скрипты приходиться макросить тока ньюбами, с 2умя скиллами по 50. От куда у нюба хилинг ? :?

_________________
xzxzxz


Top
   
PostPosted: 2006-03-04 01:56:55 
Offline

Joined: 2006-02-03 11:32:16
Posts: 256
Location: ND
Ты индустриален, если: # Ты возвращаешь дрель в магазин, потому что звук не тот; # Mужик в магазине Black and Decker знает, что ты из какой-то тусовки на "Д"; # На стиральной машинкке должен стоять
Лёшенька, с Днём Рождения тебя! Ты у нас самый милый, самый романтичный и добрый мальчик со всей сети. Оставайся всегда таким же. Это хорошие качества. Желаю тебе найти свою музу, которая будет дари


Last edited by LordTom on 2009-12-23 10:00:29, edited 3 times in total.

Top
   
 Post subject:
PostPosted: 2006-03-04 03:06:24 
Offline

Joined: 2005-04-21 18:29:21
Posts: 44
Просто монстр в упор сбивает касты, в один момент ему надоедает сбивать касты и он делает пару шагов в сторону и пытаеться кастовать, но этот момент может настать и тогда когда я уже умру :D

_________________
xzxzxz


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

All times are UTC+02:00


Who is online

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