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

Anything and all.

Moderators: Murderator+, Murderator

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

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

Post by Edred »

Code: Select all

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

sub inscript()
   VAR Sunduk = '0x40140DD1'       ; Сериал сундука с бланкскроллами и регами
   VAR Blank = '0x0E34'          ; Тип бланк скролла
   VAR Arrow = '0x1F32'         ; Тип скроллов Magic Arrow
   VAR Reg1 = '0x0F88'            ; найтшэд
   VAR Reg2 = '0x0F7A'            ; блэкперл
   VAR Fizzle = 'You fail to inscribe the scroll'
   VAR Success = 'You put the'
   VAR k
   UO.CancelMenu()
   UO.AutoMenu( 'Spell Circles', 'First Circle' )
   UO.AutoMenu( 'Spell Circle 1', 'Magic Arrow' )
   UO.UseObject( Sunduk )
   wait(1000)
   While UO.SkillVal( 'Inscription' ) < 1000
      ; берем бланк скроллы
      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
         Else
            UO.Grab( '100', 'finditem' )
            repeat
               wait(100)
            until UO.Count( Blank ) == 100
         Endif
      Endif
      ; берем найтшэд
      If UO.Count( Reg1 ) == 0 Then
         UO.FindType( Reg1, -1, Sunduk )
         If UO.FindCount() == 0 Then
            UO.Print( 'Nightshade not found. Script terminated' )
            return
         Endif
         If UO.GetQuantity( 'finditem' ) < 100 Then
            UO.Grab( '0', 'finditem' )
            repeat
               wait(100)
            until UO.Count( Reg1 ) > 0
         Else
            UO.Grab( '100', 'finditem' )
            repeat
               wait(100)
            until UO.Count( Reg1 ) == 100
         Endif
      Endif
      ; берем блэкперл
      If UO.Count( Reg2 ) == 0 Then
         UO.FindType( Reg2, -1, Sunduk )
         If UO.FindCount() == 0 Then
            UO.Print( 'Black Pearls not found. Script terminated' )
            return
         Endif
         If UO.GetQuantity( 'finditem' ) < 100 Then
            UO.Grab( '0', 'finditem' )
            repeat
               wait(100)
            until UO.Count( Reg2 ) > 0
         Else
            UO.Grab( '100', 'finditem' )
            repeat
               wait(100)
            until UO.Count( Reg2 ) == 100
         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 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
      UO.FindType( Arrow )
      If UO.FindCount() > 0 Then
         UO.MoveItem( 'finditem', 0, Sunduk )
         repeat
            wait(100)
         until UO.Count( Arrow ) == 0
      Endif
   Wend
   UO.CancelMenu()
endsub

Sub DeleteJournal( string1 )
   VAR nom = UO.InJournal( string1 )
   If nom > 0 Then
      UO.SetJournalLine( Nom - 1, 'string replaced' )
      DeleteJournal( string1 )
   Endif
endsub
Скрипт
Posts: 62
Joined: 2004-04-23 13:50:10

Post by Скрипт »

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

Post by Edred »

Скрипт wrote:народ вот тут выгрузка глючит он берёт скролы делает я переделал на поисон потом кончаються скролы и он стоит пошивелиш готовые так он тада токо берёт новые в чом проблема ?


В самом инскрипте там в самом деле с выгрузкой не очень правильно, я думал это особенность нашего шарда, при крафте скроллов он делает несколько кучек скроллов в паке. Вот измененная версия:

Code: Select all

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

sub inscript()
   VAR Sunduk = '0x40140DD1'       ; Сериал сундука с бланкскроллами и регами
   VAR Blank = '0x0E34'          ; Тип бланк скролла
   VAR Arrow = '0x1F32'         ; Тип скроллов Magic Arrow
   VAR Reg1 = '0x0F88'            ; найтшэд
   VAR Reg2 = '0x0F7A'            ; блэкперл
   VAR Fizzle = 'You fail to inscribe the scroll'
   VAR Success = 'You put the'
   VAR k
;      UO.SetGlobal( 'TimeProcess', str( UO.Timer() ) )
   UO.CancelMenu()
   UO.AutoMenu( 'Spell Circles', 'First Circle' )
   UO.AutoMenu( 'Spell Circle 1', 'Magic Arrow' )
   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
      ; берем найтшэд
      If UO.Count( Reg1 ) == 0 Then
         UO.FindType( Reg1, -1, Sunduk )
         If UO.FindCount() == 0 Then
            UO.Print( 'Nightshade 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
      ; берем блэкперл
      If UO.Count( Reg2 ) == 0 Then
         UO.FindType( Reg2, -1, Sunduk )
         If UO.FindCount() == 0 Then
            UO.Print( 'Black Pearls 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
      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 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
      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


Попрошу Йоко обновить версию в соседнем разделе. А что ты там намудрил при переделке в пойзон, я не знаю. Как кто-то тут писал: телепаты в отпуске.

А чем тебя мой пойзон не устраивает?
Скрипт
Posts: 62
Joined: 2004-04-23 13:50:10

Post by Скрипт »

у тебя не поисон а маджик арров =) просьба оставить аську для некоторых вопросов =)
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

Скрипт wrote:у тебя не поисон а маджик арров =) просьба оставить аську для некоторых вопросов =)


А, ты переделал на на деланье пойзонов... Это просто. Изменить меню и тип готовых скроллов. Аську не дам, там уже и так перебор, вопросы можешь слать на мыло.
Скрипт
Posts: 62
Joined: 2004-04-23 13:50:10

Post by Скрипт »

пойсон скролы он выкладывал :) тоесть всё ок работало а щас ФС он не выкладывает
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

Скрипт wrote:пойсон скролы он выкладывал :) тоесть всё ок работало а щас ФС он не выкладывает


Скрипт от предыдущего отличается только вместо ифа при выкладывании - вайл
Скрипт
Posts: 62
Joined: 2004-04-23 13:50:10

Post by Скрипт »

Edred wrote:
Скрипт wrote:пойсон скролы он выкладывал :) тоесть всё ок работало а щас ФС он не выкладывает


Скрипт от предыдущего отличается только вместо ифа при выкладывании - вайл

всё ок =) сеньк руки просто немного кривые и знания маленькие =)
Скрипт
Posts: 62
Joined: 2004-04-23 13:50:10

Post by Скрипт »

народ хелп еочь отроботал нормально этот скрипт и запускал его много раз
ткпкрь как я его запускаю он пишет
Error:no menu to cancel
потом про то что крафтить и выходит из скрипта народ что делать что такое случилось ведь работало !!!
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

Скрипт wrote:Error:no menu to cancel


Это нормально. Вот на это не обращай внимание или закомментарь в начале скрипта строку UO.CancelMenu(). Эта строка стоит там на случай прерывания какого-либо UO.Automenu() через терминат.

А что не работает - подробно с цитатами того что пишет. Проверь что включен трак ворлд.
H.Reaper
Posts: 14
Joined: 2004-04-05 18:56:47

Post by H.Reaper »

Скрипт классный.
Потестил. Очень хорошо работает.
Огромный респект автору!
Людям маленького роста бить в лицо легко и просто.
GRIFIL
Posts: 2
Joined: 2005-02-06 11:58:20

Post by GRIFIL »

Люди если не сложно можете переделать скрипт чтоб он кликал не на бланки при делании а сначала на перо(один раз) а потом таргетом на бланк у нас так на шарде((((
flake
Expert!
Posts: 746
Joined: 2004-08-11 23:56:17
Location: The Citadel
Contact:

Post by flake »

Вместо

Code: Select all

UO.UseType( Blank )


Вставь

Code: Select all

UO.WaitTargetType( Blank )
UO.Click( 'айди пера' )
Post Reply