Page 1 of 1

проблема с ресом в скрипте на скупку ???

Posted: 2010-12-03 08:43:35
by rus_lan
доброго времени суток всем собственно сабж)
когда ресается в миноке открывает рунбуку чтоб лететь домой и встает на этом месте уо пишет- анекспендид гамп(

Code: Select all

var BuyListName    = 'reg'          ; название листа продажи (сейчас Reg) 
var Sunduk          = '0x4044EB37'       ; Главный сундук.
var Runebag       = '0x40313F92'       ; Мешок с рунами куда лететь.
var Dropbag       = '0x4039288D'       ; Пустой мешок, куда будет кидать руны.
var BlankRunebag    = '0x40392874'       ; Мешок с бланк рунами.
var distance      = 6               ; Расстояние на каком будем искать вендор.
var Tbag         = '0x0E76'         ; Тип сумок для разгрузки мап если вы укажыте тип бланк мап.
var rb            = '0x403639D3'      ; ИД Рунбука. Если вас убили, он должен как то попасть домой.
var rh            = '73'            ; Номер руны домой. Должа быть у сундука!
var helpX         = 980            ; Если вас убили, чар ресается в миноке.
var helpY         = 55            ; Без галки Undead это не возможно.
var iron         = 0               ; Скупка айрона. 0-нет, 1-да.
var forge         = '0x404C3DA5'       ; Сериал форжы если вы будете скупать айрон.
var Nrune, BlankRune, RuniNetu, RuneHome, Dbag, flag, markflag
# ## По вопросам и предложениям обращаться на форум:
# http://forum.yoko.com.ua/viewtopic.php?t=15146
# ####################################################################
# 2007-2009 #
# ###     Тип итемов которые скупаем. Необходимо для выгрузки.     ####
# Макс. кол-во=15. Если у вас нету 15, заполняйте сколько есть.
# Остальное оставите как есть.
var item1='0x0F7A' ; regi
var item2='0x0F7B' ; regi 
var item3='0x0F86' ; regi
var item4='0x0F88' ; regi
var item5='0x0F8D' ; regi
var item6='0x0F84' ; regi
var item7='0x0F85' ; regi
var item8='0x0F8C' ; regi
var item9='0x0F0E' ; bottles
var item10='0x0F87' ; Eyes of Newt
var item11='0x0E34' ; blank scrolls
var item12='0x175D' ; folded cloth
var item13=''
var item14=''
var item15='' ; Blank maps
# ####################################################################
sub main()
   var n
   uo.set('buydelay','4000')
   if not uo.getglobal('flagRes')=='1' then
      uo.exec('exec Resurrector')
      uo.setglobal('flagRes','1')
   endif
   uo.msg('Always run:on !!!')
   uo.msg('Track World Items:on !!!')
   uo.ignorereset()
   UO.Print("Поехали по магазинам.")
   uo.findtype(rune,-1,'backpack')
   if uo.findcount() and not uo.count(rune)>1 then
      Runehome=uo.getserial('finditem')
   else
      uo.msg('Runehome not found! Terminate.')
      uo.exec('terminate all')
   endif
   Open(Sunduk)
   GrabBlankRune()   
   repeat   
      Open(Runebag)
      uo.findtype(rune,-1,RuneBag)
      while uo.findcount()
         Nrune=uo.getserial('finditem')
         uo.moveitem('finditem',0,Dropbag)
         checklag()
         wait(700)
         RegCheck()
         RegCheck()
         if uo.mana < uo.int then
            meditation(uo.int)
         endif
         RecallRune(Nrune)
         uo.useskill('Meditation')
         if uo.injournal('The recall rune fades completely.') then
            markflag=1
            Mark(BlankRune,0)
            RuniNetu=1
         end if
         wait(500)
         BuyPRG()
         checklag()
         RecallRune(RuneHome)
         uo.useskill('Meditation') # uo.useskill('Hiding')
         if uo.injournal('The recall rune fades completely.') then
            if RuniNetu==1 then
               Open(Sunduk)
               GrabBlankRune()
            endif         
            Mark(BlankRune,1)
            GrabBlankRune()
         end if
         if RuniNetu==1 then
            Open(Sunduk)
            GrabBlankRune()
         endif
         Open(Sunduk)
         if markflag==1 then
            uo.moveitem(Nrune,0,Dropbag)
            checklag()
            wait(700)
            markflag=0
         endif
         DropItems()
         uo.findtype(rune,-1,RuneBag)
      wend
      DropbagCheck()
   until uo.dead()
end sub
sub Resurrector()
   var oldX,oldY
   while 1
      if uo.dead() then
         uo.exec('terminate main')
         uo.TextOpen()
         if markflag==1 then
            uo.msg('.where')
            repeat
               wait(100)
            until uo.injournal(uo.getname('self')+": I am in")
            uo.textopen()
            uo.textprint(uo.journal(uo.injournal(uo.getname('self')+": I am in")-1))
            uo.textprint('- dead - mark failed - @ '+MakeTime())
         else
            uo.TextPrint('- dead - @ '+MakeTime())
         endif
         wait(5000)
         oldX = Uo.GetX()
         oldY = Uo.GetY()
         repeat
            uo.lclick(helpX,helpY)
            checklag()
            wait(700)
            uo.lclick(264,308)
            checklag()
            wait(700)     
            uo.lclick(175,203)
            checklag()
            wait(5000)   
         until oldX<>UO.GetX() OR oldY<>UO.GetY()
         repeat
            uo.press(39)
            wait(2000)
         until UO.GetY()<534
         repeat
            uo.useobject('0x4001BDF0')
            wait(3000)
         until uo.life>0
         Open('backpack')
         uo.print('wait 60 seconds')
         wait(60000)
         gohome()
         Open(Sunduk)
         RegCheck()
         GrabBlankRune()
         Mark(Blankrune,1)
         if uo.waiting() then
            uo.canceltarget()
         endif
         uo.exec('exec main')
      endif
      wait(5000)
   wend
endsub
sub gohome()
   var oldX=uo.getx('self')
   var oldY=uo.gety('self')
   uo.recall(rb,rh)
   repeat
      wait(700)
   until oldX<>uo.getx('self') && oldY<>uo.gety('self')
endsub
sub Open(what)
   uo.useobject(what)
   checklag()
   wait(800)
endsub
sub GrabBlankRune()
   Open(BlankRunebag)
   uo.findtype(rune,-1,BlankRunebag)
   if uo.findcount() then
      Blankrune=uo.getserial('finditem')
      uo.moveitem('finditem',0,'backpack')
      checklag()
      wait(700)
      uo.print('Взяли бланк руну')
      Runinetu=0
   else
      uo.print('Бланк рун больше нету! Скрипт остановлен.')
      uo.exec('terminate all')
   endif
endsub
sub Mark(RuneID,Place)
   repeat
      if uo.mana<33 then
         meditation(33)
      endif
      checklag()
      Uo.Cast('Mark',RuneID)
      WaitForMana()
   until not uo.injournal('The spell fizzles')
   if Place==0 then
      Nrune=uo.getserial(RuneID)
   else
      Runehome=uo.getserial(RuneID)
   endif
endsub 
Sub RecallRune(nowrune) 
   uo.Print('улетаем по руне')
   var oldX,oldY
   oldX = Uo.GetX()
   oldY = Uo.GetY()
   repeat
      if uo.mana<20 then
         meditation(20)
      endif
      Uo.Cast('Recall',nowrune)
      WaitForMana()
   Until oldX<>UO.GetX() AND oldY<>UO.GetY()
end sub
sub WaitForMana()
   VAR w,m=uo.mana
   for w=0 to 150
      if uo.mana<m then
         wait(500)
         return
      endif
      wait(500)
   next
endsub
sub BuyPRG()
   DIM Vens[2]
   Vens[1]='0x0190'
   Vens[2]='0x0191'
   var mx, my, mz, g, d
   mx = UO.GetX('self')
   my = UO.GetY('self')
   mz = UO.GetZ('self')
   uo.ignorereset()
   uo.ignore('self')
   UO.print('Начанаем Закупку!')
   for d=1 to distance
      uo.set('finddistance',d)   
      for g=1 to 2
         repeat
            wait(100)
            UO.FindType(Vens[g],-1,'ground')
            If uo.FindCount()> 0 then
               if uo.getz('finditem')<uo.getz('self')+3 and uo.getz('finditem')>uo.getz('self')-3 then
                  UO.Print(uo.GetName('finditem')+ ' Замечен, иду к нему.')
                  WalkN(0,0,'finditem') 
                  If UO.GetDistance('finditem')<=2 then
                     UO.Print('Закупаю....') 
                     uo.Buy(BuyListName,UO.GetName('finditem'))
                     checklag()
                     uo.msg(uo.GetName('finditem')+ ' bye guards')
                  else
                     UO.Print(uo.GetName('finditem')+ ' заныкался!, В &@$#% его.')
                  end if
               endif
               uo.ignore('finditem')
            end if
         until uo.FindCount()==0
      next
   next
end sub
sub DropbagCheck()
   uo.print('Проверяем мешок Dropbag')
   Open(Dropbag)
   uo.findtype(rune,-1,Dropbag)
   while uo.findcount()
      uo.moveitem('finditem',0,Runebag)
      checklag()
      wait(700)
      uo.print('Нашли руну. Кладем их в сумку Runebag.')
      uo.findtype(Rune,-1,Dropbag)
   wend
endsub
sub RegCheck()
   VAR i,q
   VAR kol=10
   Dim Regs[3]
   Regs[0]='0x0F7A'      ; Black Pearl
   Regs[1]='0x0F7B'      ; Bood Moss
   Regs[2]='0x0F86'      ; Mandrake Root
   
   for i=0 to 2
      if uo.count(Regs[i])<>kol then
         q=kol-uo.count(Regs[i])
         if q<>0 then
            if q>0 then
               uo.findtype(Regs[i],-1,Sunduk)
               if uo.findcount() then
                  uo.moveitem('finditem',STR(q),'backpack')
                  checklag()
                  wait(700)
                  uo.print('Берем реги для рекола...')
               else
                  uo.msg('No regs')
                  return
               endif
            else
               q=q*-1           
               uo.findtype(Regs[i],-1,'my')   
               if uo.findcount() then
                  uo.moveitem('finditem',STR(q),Sunduk)
                  checklag()
                  wait(700)
                  uo.print('Регов больше чем надо. Кидаем лишнее в сундук')
               endif
            endif
         endif
      endif
   next
endsub
sub meditation(mn)
   while uo.mana < mn
      if uo.Journal(0)=='You are preoccupied with thoughts of battle.' then
         uo.warmode(0)
      endif
      if uo.mana==uo.int then
         return
      endif
      checklag()
      Uo.Useskill('Meditation')
      waitformed(mn)
      wait(1000)
   wend
endsub
sub waitformed(mn)
   var n
   for n=0 to 100
      if uo.injournal('You lose|You are at peace') or uo.mana>=mn then
         return
      endif
      wait(500)
   next
endsub
sub DropItems()
   uo.ignore(Runebag)
   uo.ignore(Dropbag)
   uo.ignore(BlankRunebag)
   uo.print('Выкладываем купленное')
   if iron==1 then
      getiron()
   endif
   if item1<>'' then
      uo.findtype(item1,-1,'backpack')
      while uo.findcount()
         uo.moveitem('finditem',0,Sunduk)
         checklag()
         wait(700)
         uo.findtype(item1,-1,'backpack')
      wend
   endif
   if item2<>'' then
      uo.findtype(item2,-1,'backpack')
      while uo.findcount()
         uo.moveitem('finditem',0,Sunduk)
         checklag()
         wait(700)
         uo.findtype(item2,-1,'backpack')
      wend
   endif
   if item3<>'' then
      uo.findtype(item3,-1,'backpack')
      while uo.findcount()
         uo.moveitem('finditem',0,Sunduk)
         checklag()
         wait(700)
         uo.findtype(item3,-1,'backpack')
      wend
   endif
   if item4<>'' then
      uo.findtype(item4,-1,'backpack')
      while uo.findcount()
         uo.moveitem('finditem',0,Sunduk)
         checklag()
         wait(700)
         uo.findtype(item4,-1,'backpack')
      wend
   endif
   if item5<>'' then
      uo.findtype(item5,-1,'backpack')
      while uo.findcount()
         uo.moveitem('finditem',0,Sunduk)
         checklag()
         wait(700)
         uo.findtype(item5,-1,'backpack')
      wend
   endif
   if item6<>'' then
      uo.findtype(item6,-1,'backpack')
      while uo.findcount()
         uo.moveitem('finditem',0,Sunduk)
         checklag()
         wait(700)
         uo.findtype(item6,-1,'backpack')
      wend
   endif
   if item7<>'' then
      uo.findtype(item7,-1,'backpack')
      while uo.findcount()
         uo.moveitem('finditem',0,Sunduk)
         checklag()
         wait(700)
         uo.findtype(item7,-1,'backpack')
      wend
   endif
   if item8<>'' then
      uo.findtype(item8,-1,'backpack')
      while uo.findcount()
         uo.moveitem('finditem',0,Sunduk)
         checklag()
         wait(700)
         uo.findtype(item8,-1,'backpack')
      wend
   endif
   if item9<>'' then
      uo.findtype(item9,-1,'backpack')
      while uo.findcount()
         uo.moveitem('finditem',0,Sunduk)
         checklag()
         wait(700)
         uo.findtype(item9,-1,'backpack')
      wend
   endif
   if item10<>'' then
      uo.findtype(item10,-1,'backpack')
      while uo.findcount()
         uo.moveitem('finditem',0,Sunduk)
         checklag()
         wait(700)
         uo.findtype(item10,-1,'backpack')
      wend
   endif
   if item11<>'' then
      uo.findtype(item11,-1,'backpack')
      while uo.findcount()
         uo.moveitem('finditem',0,Sunduk)
         checklag()
         wait(700)
         uo.findtype(item11,-1,'backpack')
      wend
   endif
   if item12<>'' then
      uo.findtype(item12,-1,'backpack')
      while uo.findcount()
         uo.moveitem('finditem',0,Sunduk)
         checklag()
         wait(700)
         uo.findtype(item12,-1,'backpack')
      wend
   endif
   if item13<>'' then
      uo.findtype(item13,-1,'backpack')
      while uo.findcount()
         uo.moveitem('finditem',0,Sunduk)
         checklag()
         wait(700)
         uo.findtype(item13,-1,'backpack')
      wend
   endif
   if item14<>'' then
      uo.findtype(item14,-1,'backpack')
      while uo.findcount()
         uo.moveitem('finditem',0,Sunduk)
         checklag()
         wait(700)
         uo.findtype(item14,-1,'backpack')
      wend
   endif
   if item15<>'' then
      GetBag()
      uo.findtype(item15,-1,'backpack')
      while uo.findcount()
         uo.moveitem('finditem',0,Dbag)
         checklag()
         wait(700)
         CheckDbag()
         uo.findtype(item15,-1,'backpack')
      wend
   endif
   if uo.count(rune)>2 then
      Dbag=uo.getserial(BlankRunebag)
      uo.findtype(rune,-1,'backpack')
      while uo.findcount()
         uo.moveitem('finditem',0,Dbag)
         checklag()
         wait(700)
         uo.findtype(rune,-1,'backpack')
      wend
      uo.moveitem(RuneHome,0,'backpack')
      checklag()
      wait(700)
      uo.moveitem(BlankRune,0,'backpack')
      checklag()
      wait(700)   
   endif
endsub
sub getiron()
   var n
   Dim armor[50]
   armor[1]='0x1B77'  ; Heater Sheild
   armor[2]='0x1B76'  ; Heater Sheild
   armor[3]='0x1415'  ; Plate Mail
   armor[4]='0x1416'  ; Plate Mail
   armor[5]='0x141A'  ; Platemail Legs
   armor[6]='0x1411'  ; Platemail Legs
   armor[7]='0x1418'  ; Platemail Gauntlets
   armor[8]='0x1414'  ; Platemail Gauntlets
   armor[9]='0x1410'  ; Platemail Arms
   armor[10]='0x1419' ; Platemail Helm
   armor[11]='0x1412' ; Platemail Helm
   armor[12]='0x1413' ; Platemail Gorget
   armor[13]='0x13BF' ; Chainmail Tunic
   armor[14]='0x13BE' ; Chainmail Leggings
   armor[15]='0x13BB' ; Chainmail Coif
   armor[16]='0x13EB' ; ringmail gloves
   armor[17]='0x13F0' ; ringmail leggings
   armor[18]='0x13EE' ; ringmail sleeves
   armor[19]='0x13EC' ; ringmail tunic
   
   for n=1 to 19 # <-- не забываем указать макс. кол-во.
      uo.findtype(armor[n],'0x0000','backpack')
      while uo.findcount()
         uo.waittargetobject('finditem')
         uo.useobject(forge)
         checklag()
         wait(500)
         uo.findtype('0x1BEF',-1,'backpack')
         if uo.findcount() then
            uo.moveitem('finditem',0,Sunduk)
            checklag()
            wait(500)
         endif
         uo.findtype(armor[n],'0x0000','backpack')
      wend
   next
   uo.set('finddistance','1')
   uo.findtype('0x1BEF',-1,'ground')
   if uo.findcount() then
      uo.moveitem('finditem',0,Sunduk)
      checklag()
      wait(600)
   endif
endsub
sub GetBag()
   flag=0
   repeat
      uo.print('Ищем мешок')
      uo.findtype(Tbag,-1,Sunduk)
      if uo.findcount() then
         Dbag=uo.getserial('finditem')
         Open(Dbag)
         uo.findtype(-1,-1,Dbag)
         if uo.findcount()>254 then
            uo.ignore(Dbag)
         else
            flag=1
         endif
      endif
   until flag==1
endsub
sub CheckDbag()
   uo.findtype(-1,-1,Dbag)
   if uo.findcount()>254 then
      uo.ignore(Dbag)
      GetBag()
   endif
endsub
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=250
   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=250
   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()
   repeat
      UO.DeleteJournal()
      UO.Click('backpack')
   until backpack()==1
endsub
sub backpack()
   var n
   for n=0 to 200
      if uo.injournal('a backpack') then
         return 1
      endif
      wait(200)
   next
endsub
sub Reconnector()
   var ReconnectTime, RFlag
   ReconnectTime = '0'
   RFlag = 1
   Repeat
      While (UO.ObjAtLayer('Bpack') == '')
         if RFlag Then
            ReconnectTime = MakeTime()
            RFlag = 0
         endif
         UO.Say('')
         Wait(3000)
         UO.Say('')
         Wait(3000)
         UO.Say('')
         Wait(3000)
         UO.LDblClick(357,164)
         UO.LClick(616,459)
         Wait(3000)
      WEnd
      Wait(3000)
      if (RFlag == 0) and (ReconnectTime <> '0') Then
         ;UO.Exec('terminate all')
         ;UO.Exec('exec autoload')
         UO.TextOpen()
         UO.TextPrint('Disconnected & Reconnected @ '+ReconnectTime)
         RFlag = 1
         ReconnectTime = '0'
      endif
   Until false
end sub
sub MakeTime()
   VAR D, T, Ret, i
   Ret = STR(UO.Time())
   T = ""
   For i = 0 To Len(Ret)
      T = Ret[Len(Ret)-i] + T
      If (I == 2) OR (I == 4) Then
         T = ":" + T
      EndIf
   Next
   Ret = STR(UO.Date())
   D = ""
   For i = 0 To Len(Ret)
      D = Ret[Len(Ret)-i] + D
      If (I == 2) OR (I == 4) Then
         D = "." + D
      EndIf
   Next
   Ret = T + " @ " + D
   RETURN Ret
end sub

Re: проблема с ресом в скрипте на скупку ???

Posted: 2010-12-03 10:12:57
by Mirage
видимо проблема с

Code: Select all

var rh            = '73'            ; Номер руны домой. Должа быть у сундука!

вот в этом участке

Code: Select all

sub gohome()
   var oldX=uo.getx('self')
   var oldY=uo.gety('self')
   uo.recall(rb,rh) ; <-------
   repeat
      wait(700)
   until oldX<>uo.getx('self') && oldY<>uo.gety('self')
endsub

Re: проблема с ресом в скрипте на скупку ???

Posted: 2010-12-03 12:28:59
by rus_lan
это какая рунка по счёту получается 6???

Re: проблема с ресом в скрипте на скупку ???

Posted: 2010-12-03 13:17:02
by Mirage
rus_lan wrote:это какая рунка по счёту получается 6???

честно говоря понятия не имею. У меня на шарде нет рунбуков :)
Либо экспериментируй, либо снимай гамп и ищи где там нужная рунка.
По гампам инфа на форуме есть.

Re: проблема с ресом в скрипте на скупку ???

Posted: 2010-12-03 13:43:26
by rus_lan
спсибо тебе

Re: проблема с ресом в скрипте на скупку ???

Posted: 2010-12-03 19:39:38
by rus_lan
вот что написанно в инфогампе, мираж подскажи как узнать я понял на счет руны какя по счету.... теперь ставлю её куда нужно но все равно не реколется.
_____infogump_______
serial 0x00000009
gumpid 0x10025cdd
X 0
Y 0
2680 packet size
0 reply packet size
Buttons: ________
Checks&Radios: __
Entryes: ________
All commands: ____
1] age
2] age
3] umppic 100 10 220
4] umppic 125 40 5
5] umppic 145 40 5
6] umppic 160 40 5
7] umppic 175 40 5
8] umppic 190 40 5
9] umppic 205 40 5
10] umppic 220 40 5
11] umppic 235 40 5
12] umppic 245 40 5
13] umppic 280 40 5
14] umppic 300 40 5
15] umppic 315 40 5
16] umppic 330 40 5
17] umppic 345 40 5
18] umppic 360 40 5
19] umppic 375 40 5
20] umppic 380 40 5
21] umppic 395 40 5
22] utton 290 89 2472 2473 1 0 1
23] utton 290 133 2472 2473 1 0 3
24] utton 130 65 2103 2104 1 0 2
25] utton 130 80 2103 2104 1 0 3
26] utton 130 95 2103 2104 1 0 4
27] utton 130 110 2103 2104 1 0 5
28] utton 130 125 2103 2104 1 0 6
29] utton 130 140 2103 2104 1 0 7
30] utton 130 155 2103 2104 1 0 8
31] utton 130 170 2103 2104 1 0 9
32] utton 130 185 2103 2104 1 0 102
33] roppedtext 145 60 115 17 0
34] roppedtext 145 75 115 17 0
35] roppedtext 145 90 115 17 0
36] roppedtext 145 105 115 17 0
37] roppedtext 145 120 115 17 0
38] roppedtext 145 135 115 17 0
39] roppedtext 145 150 115 17 0
40] roppedtext 145 165 115 17 0
41] roppedtext 145 180 115 17 0
42] utton 395 14 2206 2206 0 2 2
43] ext 298 26 0
44] ext 140 26 0 1
45] ext 318 91 0 1
46] ext 318 136 0 1
47] ext 297 190 0 1
48] age
49] umppic 100 10 220
50] umppic 125 40 5
51] umppic 145 40 5
52] umppic 160 40 5
53] umppic 175 40 5
54] umppic 190 40 5
55] umppic 205 40 5
56] umppic 220 40 5
57] umppic 235 40 5
58] umppic 245 40 5
59] umppic 280 40 5
60] umppic 300 40 5
61] umppic 315 40 5
62] umppic 330 40 5
63] umppic 345 40 5
64] umppic 360 40 5
65] umppic 375 40 5
66] umppic 380 40 5
67] umppic 395 40 5
68] utton 130 65 2103 2104 1 0 1
69] utton 130 80 2103 2104 1 0 1
70] utton 130 95 2103 2104 1 0 1
71] utton 130 110 2103 2104 1 0 1
72] utton 130 125 2103 2104 1 0 1
73] utton 130 140 2103 2104 1 0 1
74] utton 130 155 2103 2104 1 0 1
75] utton 130 170 2103 2104 1 0 1
76] utton 130 185 2103 2104 1 0 2
77] roppedtext 145 60 115 17 0
78] roppedtext 145 75 115 17 0
79] roppedtext 145 90 115 17 0
80] roppedtext 145 105 115 17 0
81] roppedtext 145 120 115 17 0
82] roppedtext 145 135 115 17 0
83] roppedtext 145 150 115 17 0
84] roppedtext 145 165 115 17 0
85] roppedtext 145 180 115 17 0
86] utton 122 14 2205 2205 0 1 2
87] ext 302 86 0 1
88] ext 302 106 0 1
89] ext 302 126 0 1
90] ext 160 26 0 1
Text: ____________
0] Rune to:Minok
1] Rune to:BritBank
2] Rune to:Villa2
3] Rune to:tower
4] Minoc Cave3
5] Rune to:Villa
6] Rune to:Les
7] Ice Isle
8] Rune to:Shahta
9] Actions:
10] Runes:
11] Add Rune
12] Charges: 472
13] Select a rune
14] to remove it
15] from runebook
16] Remove rune:
17] Rename book

Re: проблема с ресом в скрипте на скупку ???

Posted: 2010-12-05 17:47:30
by Mirage
Вот ЭТО в отдельном окне (без целикового скрипта) попробуй запустить и посмотри куда чара перенесет

Code: Select all

var rb = '0x403639D3' ; ИД Рунбука. Если вас убили, он должен как то попасть домой.
sub gohome()
   var oldX=uo.getx('self')
   var oldY=uo.gety('self')
   uo.recall(rb,5) ; <-------
   repeat
      wait(700)
   until oldX<>uo.getx('self') && oldY<>uo.gety('self')
endsub

Re: проблема с ресом в скрипте на скупку ???

Posted: 2010-12-08 14:55:28
by 666||TORCHKI

Code: Select all

uo.recall(RuneBook,'21') ; 1-я
uo.recall(RuneBook,'33') ; 2-я
uo.recall(RuneBook,'46') ; 3-я
uo.recall(RuneBook,'58') ; 4-я
uo.recall(RuneBook,'64') ; 5-я
uo.recall(RuneBook,'73') ; 6-я
uo.recall(RuneBook,'88') ; 7-я
uo.recall(RuneBook,'94') ; 8-я
uo.recall(RuneBook,'1025') ; 9-я

Это под дрв, как и скрипт выше.