Yoko

All sides of Injection
It is currently 2025-12-30 16:34:28

All times are UTC+02:00




Post new topic  Reply to topic  [ 1 post ] 
Author Message
PostPosted: 2009-03-30 10:10:57 
Offline

Joined: 2006-06-24 11:22:43
Posts: 31
Помогите добавить полиморф в демона. Если возможно с проверкой в демоне чар или нет; добор регов.
Code:
### 
# В рунбуке по порядку лежат руны с первой до 6ой. Указываем таргетом рунбуку, максимальный вес, сундук, # форжу, настраиваем шоплист
# в котором пишем названия всех рингмайл и чайнмайл предметов которые потом пойдут на переплавку,и        # координаты около дома -рядом
# с форжой и сундуком. Запустили-полетели-купили-вернулись-переплавили-инги убрали-полетели дальше.
#######
# ymd #
#######
sub main()
var X,Y, Xself , Yself, z ,i, n, k
var MaxWeight = 700 # Your max weight
uo.Set('finddistance','15')
uo.Set('buydelay','3000')

  uo.AddObject('Runebook')
  while uo.Targeting()
    wait(100)
  wend
 
for z = 0 to 1
  for i = 1 to 8 #6 - six runes to shop in runebook (mb changes)
    RecallShop:
    CheckLag()
    uo.UseObject('Runebook')
    wait(1000)
    uo.LClick(135 , i*15+55) # Runebook for DRW
    wait(500)
    Xself = uo.GetX('self')
    Yself = uo.GetY('self')
    repeat
      wait(100)
    until Xself<>uo.GetX('self') and Yself<>uo.GetY('self')
    uo.Print('Buying ...')
    wait(2550)
    uo.Buy('iron') #Shop list with chainmail items and ringmail items
    wait(6000)
    CheckLag()
    RecallHome()
  next
  wait(300000) #Pause for respaun
next
end sub

sub RecallHome()
var RuneToHome=9 #Slot in runebook where's rune to home
var Runebook='0x401E3A53' #ID of your runebook
var Xself , Yself, k
  RecallHome:
  Xself = uo.GetX('self')
  Yself = uo.GetY('self')
  CheckLag()
  uo.UseObject('Runebook')
  wait(2000)
  uo.LClick(135 , RuneToHome*15+55)
  wait(5000)
  k = 0
  repeat
    uo.Print('Get out an items ...')
    wait(1000)
    k = k + 1
  until Xself<>uo.GetX('self') and Yself<>uo.GetY('self')
  if Xself <> uo.GetX('self') then
    wait(1000)
    SmelthingForIron()
    CheckLag()
  end if
end sub

Sub CheckLag()
  UO.DeleteJournal()
  UO.Click('backpack')
  repeat
    wait(50)
  until UO.InJournal('backpack')
end sub

sub SmelthingForIron()
uo.Set('findistance','5')
var i
var Forge='0x401C37AC' #ID of your forge near house
var Sunduk='0x40074435'  #ID of a container near house
var ingot='0x1BEF'  #Type of iron ingot

DIM chain[10]

    chain[0]='0x13EC' #0-9 .Types of ringmail and chainmail items
    chain[1]='0x13F0'
    chain[2]='0x13BF'
    chain[3]='0x13BB'
    chain[4]='0x13EE'
    chain[5]='0x13EB'
    chain[6]='0x13BE'
    chain[7]='0x1B76'
    chain[8]='0x1411'
    chain[9]='0x1413'

    go(65535,65535,0) # X,Y near forge
    while not uo.Hidden()
      uo.UseSkill('Hiding')
      wait(5000)
    wend
    for i = 0 to 9
      uo.FindType(chain[i],'-1','backpack')
      if uo.FindCount() then
        while uo.FindCOunt()
          uo.FindType(chain[i],'-1','backpack')
          uo.WaitTargetObject('finditem')
          uo.UseObject(Forge)
          wait(1000)
        wend
      else
        uo.Print('There are no chainmail armor')
      end if
    next
    uo.FindType('0x1BEF','-1','backpack')
    if uo.FindCOunt() then
      uo.moveitem('finditem','all',Sunduk)
      wait(1000)
    end if
    uo.FindType('0x1BEF','-1','ground')
    if uo.FindCOunt() then
      uo.moveitem('finditem','all',Sunduk)
      wait(1000)
    end if
end sub   


Sub go(x,y,k)
    var kop
   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"
   kop=0
   While Exit<>1   

         dx=x-UO.GetX()
         dy=y-UO.GetY()
         If dx==0 AND dy==0 Then
            Exit=1
         Endif
         
            kop=kop+1
            if kop==15 then
             Exit=1
            else
   
      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
     endif
   Wend
   if k==1 then
    minround()
   endif
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

Sub CheckLag()
var ms="attacking you"
var k=uo.life-uo.str
    if k*k>1 or uo.injournal(ms) then
     uo.say("")
    endif
   UO.DeleteJournal()
   UO.Click('backpack')
   repeat
      wait(50)
   until UO.InJournal('backpack')
end sub


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

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 1 guest


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:  
Powered by phpBB® Forum Software © phpBB Limited