Camping для соседнего раздела

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Camping для соседнего раздела

Post by Edred »

Code: Select all

#===================================================================#
# CAMPING                                                           #
#===================================================================#
#   v.1.04b (с) Edred                                               #
#===================================================================#
; Берем в пак 200 хвороста и реги, реколлимся по руне туда где можно
; жечь костры, врубаем медитацию, отделяем по 1 шт. хвороста, кладем их
; вокруг чара с трех сторон, дважды щелкаем по этим кучкам хвороста
; для их разжигания (с повторами в случае физлов). Отходим назад
; (направление на правый нижний угол - клавиша "3" на нумпаде).
; Повторям последнюю операцию пока чар не придет в точку FinalX.
; Реколлимся на базу, добираем из ящика хворост и реги. И по кругу.
;
; Разметьте руну где-нибудь в непосещаемом городе, прогуляйтесь шагов
; на 30-50 по диагонали по направлению цифры 3 на нумпаде, занесите
; координату X этой точки в FinalX (для надежности и защиты от лагов
; будет лучше если в этой точке чар упрется в стенку). На базе рядом
; с реколлкой поставьте сундук и в него положите много хвороста (можно
; одной "неподьъемной" кучкой и побольше регов для реколла.
; Занесите руну в этот город в ту же рунбуку, где и руна на базу.
;
sub camping()
   DIM Regs[3]
   Regs[0] = '0x0F7A'         ; Black Pearl
   Regs[1] = '0x0F7B'         ; Bood Moss
   Regs[2] = '0x0F86'         ; Mandrake Root
   VAR Hvorost = '0x0DE1'
   VAR flag, myx, myy, myz, fin, i
   VAR FinalX = 1350
   VAR Sunduk = '0x40591B82'
   VAR RuneToBase = '20'
   VAR RuneToFire = '30'
   ;
   ; Стартуем стоя в начале пути.
;      UO.SetGlobal( 'TimeProcess', str( UO.Timer() ) )
   UO.Exec( 'set finddistance 3' )
   While UO.SkillVal( 'Camping' ) < 1000
      fin = 0
      UO.UseSkill( 'Meditation' )
      UO.FindType ( Hvorost )
      While ( UO.FindCount() > 0 ) AND ( fin == 0 )
         myx = UO.GetX()
         myy = UO.GetY()
         myz = UO.GetZ()
         UO.MoveItem('finditem', '1', 'ground', str(myx-1), str(myy), str(myz))
         wait(1000)
         CheckLag()
         UO.FindType ( Hvorost )
         UO.MoveItem('finditem', '1', 'ground', str(myx), str(myy+1), str(myz))
         wait(1000)
         CheckLag()
         UO.FindType ( Hvorost )
         UO.MoveItem('finditem', '1', 'ground', str(myx), str(myy-1), str(myz))
         wait(1000)
         CheckLag()
         UO.Findtype( Hvorost, -1, 1 )
         While UO.FindCount() > 0 AND NOT UO.InJournal( "You can't ignite several" )
            repeat
               flag = 1
               DeleteJournal( "You fail to ignite" )
               DeleteJournal( "You can't ignite several" )
               DeleteJournal( "You must wait" )
               UO.UseFromGround( Hvorost )
               wait(1000)
               CheckLag()
               If UO.InJournal( "You must wait" ) OR UO.InJournal( "You fail to ignite" ) Then
                  flag = 0
                  wait(1000)
               Endif
               If UO.InJournal( "You can't ignite several" ) Then
                  UO.FindType( Hvorost, -1, 1 )
                  While UO.FindCount() > 0
                     If UO.GetQuantity( 'finditem' ) > 1 Then
                        UO.Grab( str( UO.GetQuantity( 'finditem' ) - 1 ), 'finditem' )
                        wait(1000)
                        CheckLag()
                     Endif
                     UO.Ignore( 'finditem' )
                     UO.FindType( Hvorost, -1, 1 )
                  Wend
                  UO.IgnoreReset()
               Endif
            until flag
            UO.Findtype( Hvorost, -1, 1 )
         Wend
         While ( UO.GetX() < myx + 1 ) AND ( fin == 0 )
            UO.Press( 34 )
            wait(300)
            CheckLag()
            If UO.GetX() == FinalX Then
               fin = 1
            Endif
         Wend
         UO.FindType ( Hvorost )
      Wend
      ; достигли конца маршрута или кончился хворост
      Recalling( 'CommonRunbook', RuneToBase )
      UO.UseObject( Sunduk )
      wait(1000)
      CheckLag()
      for i = 0 To 2
         If UO.Count( Regs[i] ) < 6 Then
            ; этого рега меньше 6
            UO.FindType( Regs[i], '-1', Sunduk )
            UO.Grab( str( 6 - UO.Count( Regs[i] ) ), 'finditem' )
            Wait( 1000 )
            CheckLag()
         Endif
      next
      If UO.Count( Hvorost ) < 200 Then
         ; хвороста меньше 200
         UO.FindType( Hvorost, '-1', Sunduk )
         UO.Grab( str( 200 - UO.Count( Hvorost ) ), 'finditem' )
         Wait( 1000 )
         CheckLag()
      Endif
;      EatChar( Sunduk, 2, 1, 60 )
      Recalling( 'CommonRunbook', RuneToFire )
   Wend
endsub

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

#####################################################################
Sub DeleteJournal( string1 )
   VAR nom = UO.InJournal( string1 )
   If nom > 0 Then
      UO.SetJournalLine( Nom - 1, 'string replaced' )
      DeleteJournal( string1 )
   Endif
endsub

#####################################################################
Sub Recalling( Runbk, NRune )
   ; Runbk - сериал или ссылка на объект рунбуки
   ; NRune - десятичный номер (текстом) руны для реколла
   VAR myx = UO.GetX()
   VAR myy = UO.GetY()
   VAR OldMana = UO.Mana
   VAR i = 0
   DeleteJournal( 'fizzles' )
   UO.Exec("recall " + Runbk + " " + NRune)
   repeat
      CheckLag()
      wait(1000)
      i = i + 1
   until ( i > 6 ) OR ( UO.Mana < OldMana - 8 ) OR UO.InJournal( 'fizzles' )
   wait(500)
   If myx == UO.GetX() AND myy == UO.GetY() Then
      UO.WarMode( 'flip' )
      wait(100)
      UO.WarMode( 'flip' )
      Recalling( Runbk, NRune )
   Endif
endsub
volhram
Posts: 95
Joined: 2004-10-19 16:25:45

Post by volhram »

Яб совместил кукинг и кампинг....на оскоме например только на костре пожаришь. А так выложил одну веточку, жаришь на ней пока не погаснет....потом ещё одну на тоже место...а уж потом, когда кукинг прокачаешь то нужно пользоваться патчем, смещающем огонь вверх....чтоб можно было на одно место ветки ложить
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

volhram wrote:Яб совместил кукинг и кампинг....на оскоме например только на костре пожаришь. А так выложил одну веточку, жаришь на ней пока не погаснет....потом ещё одну на тоже место...а уж потом, когда кукинг прокачаешь то нужно пользоваться патчем, смещающем огонь вверх....чтоб можно было на одно место ветки ложить


Тебе никто не мешает на скрипте для кукинга качать и то и другое, а потом переключиться на чисто кампинг. (кукинг смотри рядом)
Post Reply