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-я
Это под дрв, как и скрипт выше.