Inscript

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
Cash
Posts: 14
Joined: 2012-04-02 20:49:27

Inscript

Post by Cash »

использую скрипт в топе
самое интересное что скрипт работает
я его проверил и переделал на рисование ГХ
теперь решил рисовать зеркала переделываю его и он уже не работает
то есть сначала он берет реги полносью их вырабатывает и останавливается то есть не срабатывает проверка на то что регов стало 0 почемуто (хотя на гх я переделывал его все работало на ура) может я в упор не вижу ошибки? подскажите пожалуйста

Code: Select all

#####################################################################
; Inscription. v.1.04b (c) Edred
;
; Берем из сундука blank scroll, nightshade, black pearl,
; крафтим из них скролл Magic Arrow (с повторами в случае физлов),
; потом скидываем готовый скролл в тот же сундук.
; Если что-либо кончилось - выход.

sub inscript()
   VAR Sunduk = '0x548a607a'       ; Сериал сундука с бланкскроллами и регами
   VAR Blank = '0x0E34'          ; Тип бланк скролла
   VAR Arrow = '0x1f50'         ; Тип скроллов MR
   VAR Reg1 = '0x0f86'            ; MR
   VAR Reg2 = '0x0f8d'            ; SS
   VAR Reg3 = '0x0f84'            ; GA
   VAR Fizzle = 'You fail to inscribe the scroll'
   VAR Success = 'You finish scribing the scroll'
   VAR k
;      UO.SetGlobal( 'TimeProcess', str( UO.Timer() ) )
   UO.CancelMenu()
   UO.AutoMenu( 'Select a circle to inscribe', 'Circle 5 spells' )
   wait(500)
   UO.AutoMenu( 'Select a spell to inscribe', 'Magic Reflection' )
   UO.UseObject( Sunduk )
   wait(1000)
   While UO.SkillVal( 'Inscription' ) < 1000
      ; берем бланк скроллы
;      EatChar( Sunduk, 2, 1, 60 )
      If UO.Count( Blank ) == 0 Then
         UO.FindType( Blank, -1, Sunduk )
         If UO.FindCount() == 0 Then
            UO.Print( 'Blank Scroll not found. Script terminated' )
            return
         Endif
         If UO.GetQuantity( 'finditem' ) < 100 Then
            UO.Grab( '0', 'finditem' )
            repeat
               wait(100)
            until UO.Count( Blank ) > 0
            CheckLag()
         Else
            UO.Grab( '100', 'finditem' )
            repeat
               wait(100)
            until UO.Count( Blank ) == 100
            CheckLag()
         Endif
      Endif
      ; берем MR
      If UO.Count( Reg1 ) == 0 Then
         UO.FindType( Reg1, -1, Sunduk )
         If UO.FindCount() == 0 Then
            UO.Print( 'MR not found. Script terminated' )
            return
         Endif
         If UO.GetQuantity( 'finditem' ) < 100 Then
            UO.Grab( '0', 'finditem' )
            repeat
               wait(100)
            until UO.Count( Reg1 ) > 0
            CheckLag()
         Else
            UO.Grab( '100', 'finditem' )
            repeat
               wait(100)
            until UO.Count( Reg1 ) == 100
            CheckLag()
         Endif
      Endif
      ; берем SS
      If UO.Count( Reg2 ) == 0 Then
         UO.FindType( Reg2, -1, Sunduk )
         If UO.FindCount() == 0 Then
            UO.Print( 'SS not found. Script terminated' )
            return
         Endif
         If UO.GetQuantity( 'finditem' ) < 100 Then
            UO.Grab( '0', 'finditem' )
            repeat
               wait(100)
            until UO.Count( Reg2 ) > 0
            CheckLag()
         Else
            UO.Grab( '100', 'finditem' )
            repeat
               wait(100)
            until UO.Count( Reg2 ) == 100
            CheckLag()
         Endif
      Endif
      ; берем GA
      If UO.Count( Reg3 ) == 0 Then
         UO.FindType( Reg3, -1, Sunduk )
         If UO.FindCount() == 0 Then
            UO.Print( 'Garling not found. Script terminated' )
            return
         Endif
         If UO.GetQuantity( 'finditem' ) < 100 Then
            UO.Grab( '0', 'finditem' )
            repeat
               wait(100)
            until UO.Count( Reg3 ) > 0
            CheckLag()
         Else
            UO.Grab( '100', 'finditem' )
            repeat
               wait(100)
            until UO.Count( Reg3 ) == 100
            CheckLag()
         Endif
      Endif
      repeat
         DeleteJournal( Fizzle )
         DeleteJournal( Success )
         UO.UseType( Blank )
         k = 0
         repeat
            k = k + 1
            wait(100)
         until UO.InJournal(Fizzle) OR UO.InJournal(Success) OR UO.Count(Blank) == 0 OR UO.Count(Reg1) == 0 OR UO.Count(Reg2) == 0 OR UO.Count(Reg3) == 0 OR k > 600
         If UO.Mana < 10 Then
            repeat
               UO.UseSkill( 'Meditation' )
               wait(2000)
            until UO.Mana == UO.Int
         Endif
      Until UO.Count( Blank ) == 0 OR UO.Count( Reg1 ) == 0 OR UO.Count( Reg2 ) == 0 OR UO.Count( Reg3 ) == 0
      While UO.Count( Arrow ) > 0
         UO.FindType( Arrow )
         If UO.FindCount() > 0 Then
            UO.MoveItem( 'finditem', 0, Sunduk )
            wait(1000)
            CheckLag()
         Endif
      Wend
   Wend
   UO.CancelMenu()
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
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Inscript

Post by Mirage »

Меню может меняться когда регов много и по 1 например.
Соответсвенно вылетает на автоменю.
Попробуй прописать в проверку регов не 0 а 3 хотя бы.

PS у меня немного другой скрипт. Если с твоим не получится я покажу как я делал.
Cash
Posts: 14
Joined: 2012-04-02 20:49:27

Re: Inscript

Post by Cash »

Поменял... но чтото не сразабатывает ...заметил правда что когда приходит время брать реги над бэкпаком появляется надпись "a backpack" когда щелкаешь по ней мышкой 1 раз... а когда скрипт срабатывает на гх то он появляется 4 вроде раза по разу когда берет реги и бланки
не понимаю...на ГХ работает прекрастно как только убираю 1 рег - перестает... чо за мистика...

вот скрипт на ГХ

Code: Select all

#####################################################################
; Inscription. v.1.04b (c) Edred
;
; Берем из сундука blank scroll, nightshade, black pearl,
; крафтим из них скролл Magic Arrow (с повторами в случае физлов),
; потом скидываем готовый скролл в тот же сундук.
; Если что-либо кончилось - выход.

sub inscript()
   VAR Sunduk = '0x548a607a'       ; Сериал сундука с бланкскроллами и регами
   VAR Blank = '0x0e34'          ; Тип бланк скролла
   VAR Arrow = '0x1f49'         ; Тип скроллов GH
   VAR Reg1 = '0x0f86'            ; MR
   VAR Reg2 = '0x0f85'            ; GI
   VAR Reg3 = '0x0f8d'            ; SS
   VAR Reg4 = '0x0f84'            ; GA
   VAR Fizzle = 'You fail to inscribe the scroll'
   VAR Success = 'You finish scribing the scroll'
   VAR k
;      UO.SetGlobal( 'TimeProcess', str( UO.Timer() ) )
   UO.CancelMenu()
   UO.AutoMenu( 'Select a circle to inscribe', 'Circle 4 spells' )
   wait(500)
   UO.AutoMenu( 'Select a spell to inscribe', 'Greater Heal' )
   UO.UseObject( Sunduk )
   wait(1000)
   While UO.SkillVal( 'Inscription' ) < 1000
      ; берем бланк скроллы
;      EatChar( Sunduk, 2, 1, 60 )
      If UO.Count( Blank ) == 0 Then
         UO.FindType( Blank, -1, Sunduk )
         If UO.FindCount() == 0 Then
            UO.Print( 'Blank Scroll not found. Script terminated' )
            return
         Endif
         If UO.GetQuantity( 'finditem' ) < 100 Then
            UO.Grab( '0', 'finditem' )
            repeat
               wait(100)
            until UO.Count( Blank ) > 0
            CheckLag()
         Else
            UO.Grab( '100', 'finditem' )
            repeat
               wait(100)
            until UO.Count( Blank ) == 100
            CheckLag()
         Endif
      Endif
      ; берем MR
      If UO.Count( Reg1 ) == 0 Then
         UO.FindType( Reg1, -1, Sunduk )
         If UO.FindCount() == 0 Then
            UO.Print( 'Mandrake Root not found. Script terminated' )
            return
         Endif
         If UO.GetQuantity( 'finditem' ) < 100 Then
            UO.Grab( '0', 'finditem' )
            repeat
               wait(100)
            until UO.Count( Reg1 ) > 0
            CheckLag()
         Else
            UO.Grab( '100', 'finditem' )
            repeat
               wait(100)
            until UO.Count( Reg1 ) == 100
            CheckLag()
         Endif
      Endif
            ; берем GI
      If UO.Count( Reg2 ) == 0 Then
         UO.FindType( Reg2, -1, Sunduk )
         If UO.FindCount() == 0 Then
            UO.Print( 'Ginsing not found. Script terminated' )
            return
         Endif
         If UO.GetQuantity( 'finditem' ) < 100 Then
            UO.Grab( '0', 'finditem' )
            repeat
               wait(100)
            until UO.Count( Reg2 ) > 0
            CheckLag()
         Else
            UO.Grab( '100', 'finditem' )
            repeat
               wait(100)
            until UO.Count( Reg2 ) == 100
            CheckLag()
         Endif
      Endif
            ; берем SS
      If UO.Count( Reg3 ) == 0 Then
         UO.FindType( Reg3, -1, Sunduk )
         If UO.FindCount() == 0 Then
            UO.Print( 'Spider silk not found. Script terminated' )
            return
         Endif
         If UO.GetQuantity( 'finditem' ) < 100 Then
            UO.Grab( '0', 'finditem' )
            repeat
               wait(100)
            until UO.Count( Reg3 ) > 0
            CheckLag()
         Else
            UO.Grab( '100', 'finditem' )
            repeat
               wait(100)
            until UO.Count( Reg3 ) == 100
            CheckLag()
         Endif
      Endif
      ; берем GA
      If UO.Count( Reg4 ) == 0 Then
         UO.FindType( Reg4, -1, Sunduk )
         If UO.FindCount() == 0 Then
            UO.Print( 'Garling not found. Script terminated' )
            return
         Endif
         If UO.GetQuantity( 'finditem' ) < 100 Then
            UO.Grab( '0', 'finditem' )
            repeat
               wait(100)
            until UO.Count( Reg4 ) > 0
            CheckLag()
         Else
            UO.Grab( '100', 'finditem' )
            repeat
               wait(100)
            until UO.Count( Reg4 ) == 100
            CheckLag()
         Endif
      Endif
      repeat
         DeleteJournal( Fizzle )
         DeleteJournal( Success )
         UO.UseType( Blank )
         k = 0
         repeat
            k = k + 1
            wait(100)
         until UO.InJournal(Fizzle) OR UO.InJournal(Success) OR UO.Count(Blank) == 0 OR UO.Count(Reg1) == 0 OR UO.Count(Reg2) == 0 OR UO.Count(Reg3) == 0 OR UO.Count(Reg4) == 0 OR k > 50
         If UO.Mana < 20 Then
            repeat
               UO.UseSkill( 'Meditation' )
               wait(5100)
            until UO.Mana == UO.Int
         Endif
      Until UO.Count( Blank ) == 0 OR UO.Count( Reg1 ) == 0 OR UO.Count( Reg2 ) == 0 OR UO.Count( Reg3 ) == 0 OR UO.Count( Reg4 ) == 0
      While UO.Count( Arrow ) > 0
         UO.FindType( Arrow )
         If UO.FindCount() > 0 Then
            UO.MoveItem( 'finditem', 0, Sunduk )
            wait(1000)
            CheckLag()
         Endif
      Wend
   Wend
   UO.CancelMenu()
endsub

#####################################################################
Sub CheckLag()
   DeleteJournal( 'backpack' )
   UO.Click( 'backpack' )
   repeat
      wait(100)
   until UO.InJournal( 'a 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
Cash
Posts: 14
Joined: 2012-04-02 20:49:27

Re: Inscript

Post by Cash »

помогите :(
Cash
Posts: 14
Joined: 2012-04-02 20:49:27

Re: Inscript

Post by Cash »

Ап.
Помогите с данной проблемой =(
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Inscript

Post by Mirage »

Замени в скрипте это:

Code: Select all

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

на это:

Code: Select all

Sub CheckLag()
   DeleteJournal( 'ackpack' )
   UO.Click( 'backpack' )
   repeat
      wait(100)
   until UO.InJournal( 'ackpack' )
   return
end sub
Cash
Posts: 14
Joined: 2012-04-02 20:49:27

Re: Inscript

Post by Cash »

не помогает :(

если поможет то в конце идет фраза "You can't access blank scroll"
Post Reply