Yoko

All sides of Injection
It is currently 2026-01-16 21:52:06

All times are UTC+02:00




Post new topic  Reply to topic  [ 8 posts ] 
Author Message
 Post subject: кил моб
PostPosted: 2011-01-30 23:03:54 
Offline

Joined: 2009-06-12 20:10:00
Posts: 240
Location: Vasa Smerti(RASToMAN) DRW
прив вот скрипт на кил моб он не весь но мне надо токо в Этом скрипте переделать сам Хз как

тут надо проверить если есть на место где я прилетел ищо мобы каторый в списке
Code:
   Dim npc[10]
   npc[0]=6 # count
   npc[1]='0x0027'
   npc[2]='0x0008'
   npc[3]='0x002F'
   npc[4]='0x0006'
   npc[5]='0x0015'
   npc[6]='0x0004'


вот список мобов

а вот и кусок скрипта каторый надо переделать

он должен проверять если ищо остались то продолжает их убевать а если нет то скрипт останавливаеца

Code:
sub main2()
   var n, m, mob, body='2006'
   var scit='0x1B76' ;ТУТ ТИП ЩИТА
   var daggera='0x1400' ;ТУТ ТИП ТОГО ЧЕМ БУДЕМ УБЕВАТЬ МОБА
   
uo.ignorereset()
   
   Dim npc[10]
   npc[0]=6 # count
   npc[1]='0x0027'
   npc[2]='0x0008'
   npc[3]='0x002F'
   npc[4]='0x0006'
   npc[5]='0x0015'
   npc[6]='0x0004'
   
   Dim loot[50]
   loot[0]=6 # count
   loot[1]='0x0EED' ;ТУТ ОБА И ПЕРВАЯ И ВТОРАЯ ЭТО ТИП ТОГО ЧТО ЛУТИМ
   loot[2]='0x0F78'
   loot[3]='0x0F7C'
   loot[4]='0x0F90'
   loot[5]='0x1BD1'
   loot[6]='0x0F87'
   
  uo.set('finddistance','10')
      for n=1 to npc[0]
      checklag()
         uo.findtype(npc[n],-1,'ground')
         if uo.findcount() then
         uo.waittargetobject(npc[n])
            uo.usetype(daggera)
            checklag()
            wait(500)
            uo.usetype(scit)
            wait(100)
            mob=uo.getserial('finditem')
            kill(mob)
            uo.useobject('lastcorpse')
            wait(1000)
            for m=1 to loot[0]
               while uo.getquantity('<'+loot[m])
                  uo.moveitem('<'+loot[m])
                  wait(700)
               wend
            next
            while uo.life<uo.str-20 and uo.count('0x0E21')
            Tohide()
             wait(100)
               uo.bandageself()
               wait(3500)
            wend
            if uo.count('0x0E20') then
               uo.waittargettype('0x1008')
               uo.usetype('0x0E20')
               wait(1000)
            endif
         endif
      next
      wait(1000)
endsub


Top
   
 Post subject: Re: кил моб
PostPosted: 2011-01-31 09:08:05 
Offline

Joined: 2009-06-12 20:10:00
Posts: 240
Location: Vasa Smerti(RASToMAN) DRW
мираж помоги


Top
   
 Post subject: Re: кил моб
PostPosted: 2011-01-31 10:51:58 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
Если тебе на овец надо то проще 2 типа зверьков ввести и проработатьпо алгоритму
пока жив повторять
Code:
если нашел волосатую овцу - стрижем 
в противном случае
если нашли стриженную овцу - убиваем
конец если
конец цикла.

без for next/ Так будет сперва всех стрич потом всех убивать.

Если не для овец то не понятно зачем даггер.

Стукнись в аську 325811945 если у тебя аська есть.

_________________
Image
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"
Стрелялка для олдов.


Top
   
 Post subject: Re: кил моб
PostPosted: 2011-02-01 22:29:22 
Offline

Joined: 2009-06-12 20:10:00
Posts: 240
Location: Vasa Smerti(RASToMAN) DRW
Code:
sub kill(mob)
   var n, body='2006'
  var dagger='0x1400' ;ÒÓÒ ÒÈÏ ÄÀÃÅÐÀ ÈËÈ ÒÅÌ ×ÅÌ ÁÓÄÅÒ ÐÅÇÀÒÜ
   checklag()
   for n=0 to 100
      uo.attack(mob)
      if uo.getdistance(mob)>0 then
      uo.resend()
         walkn(0,0,mob)   ;ВОТ ТУТ ОНА ДОЛЖНА БЫТЬ
         #poisk()
         If Uo.GetHP() < 50 then
UO.usetype('0x0F0E','0x09BB')
Endif
      endif
      if uo.injournal('Body of') then
         if corpser==1 then
            uo.waittargetobject('lastcorpse')
            wait(100)
            uo.usetype(dagger)
            wait(500)   
         endif
         return
         uo.ignore(body)
      endif
      wait(1000)
   next
endsub


Это ходилка тупит и и за неё я падаю
Code:

sub WalkN(x,y,Target)
   VAR LastTimer
   LastTimer=UO.Timer()
   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"
   uo.say('')   
   While Exit<>1   
      If Target<>"" Then
         dx=UO.GetX(Target)-UO.GetX()
         dy=UO.GetY(Target)-UO.GetY()         
         If UO.GetDistance(Target)<2 OR LastTimer+100<UO.Timer() Then
            wait(1000)
            return
         Endif
      Else
         dx=x-UO.GetX()
         dy=y-UO.GetY()
         If dx==0 AND dy==0 OR LastTimer+100<UO.Timer() Then
            return
         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=150
   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=150
   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: Re: кил моб
PostPosted: 2011-02-01 23:43:17 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
http://forum.yoko.com.ua/viewtopic.php?t=6742
самая нормальная на инжекте.

_________________
Image
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"
Стрелялка для олдов.


Top
   
 Post subject: Re: кил моб
PostPosted: 2011-02-02 08:22:19 
Offline

Joined: 2009-06-12 20:10:00
Posts: 240
Location: Vasa Smerti(RASToMAN) DRW
да вопросов нету но я никак не магу понять как вставить чтобы он шол к мобу


Top
   
 Post subject: Re: кил моб
PostPosted: 2011-02-02 09:00:17 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
У меня оно выглядит вот так примерно:
Code:
sub KillIt()
   VAR MaxVes = 600
   VAR n=1
   var animal=0x000D #тип животного
   uo.ignorereset()
   
   Repeat
      uo.Set('finddistance', n)
      uo.FindType(animal, -1, 'ground')
      if uo.FindCount() then
         uo.resend()
         n=1
         uo.attack('finditem')
         repeat
            if uo.GetDistance('finditem') > 2 then
               walker(uo.GetX('finditem'),uo.GetY('finditem'),1)
            else
               wait(100)
            end if
         until uo.dead() or uo.GetX('finditem')==0
         wait(100)
         Loot()
      else
         n=n+1
         if n>10 then
            n=1
         endif
      end if
      Loot()
   Until uo.Dead() || UO.Weight > MaxVes
   hanthome()
end sub


n нужно чтобы поиск шел не от края круга к центру, а от центра расширяясь, как локатор. В Loot поиск тела по типу, открыть, вынуть нужные вещи. uo.GetX('finditem')==0 - У убитого моба обнуляются координаты.
Ходилка Beyonder как раз идеально подходит - обход препятствий, сквозь лес, и дома скидывать лут можно на любом этаже даже. У меня чар даже на беге не подлагивал практически никогда.

_________________
Image
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"
Стрелялка для олдов.


Top
   
 Post subject: Re: кил моб
PostPosted: 2011-02-02 10:18:18 
Offline

Joined: 2009-06-12 20:10:00
Posts: 240
Location: Vasa Smerti(RASToMAN) DRW
мираж проблема у меня опять же с ходил кой можно ли как то зделать чтобы он шол постоянно за мобом а не да пустим моб находица в квадрате 1111,2000,1 тут иду к ним и тут же моб уходит да пустим в квадрате 1115,2009,1 то мой чар идет там где был моб до перехода в другой квадрат.

и вторая проблема если я бю моба и он отходит на одну клетку и стоит на месте то чар ждет пока он не троница с места .

и третия проблема он не подходит постояна к мобу


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 2 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