var bs="0x0E34" #<---тип пустых бланков var rs="0x1F4C" #<--- тип реколов var sb="0x400B290D" #<--- сераал спелбуки var time
while uo.count(bs) uo.print( "Blank scrolls "+str(uo.count(bs)) ) uo.print( "Recall scrolls "+str(uo.count(rs)) ) uo.deletejournal() uo.waitmenu("Select a circle to inscribe","Spell Circles","Fourth Circle","Spell Circle 4","Recall") uo.waittargetobject("_"+bs,sb) uo.useskill( "Inscription" ) time=uo.timer() repeat wait(500) until uo.injournal("You dont have enough mana to continue") || (uo.timer()-time)>600 while UO.Mana<UO.INT UO.DeleteJournal() UO.UseSkill('Meditation') if not UO.InJournal('You are unable to concentrate') then wait(10000) endif wend wend endsub
вот скрипт на крафт реколов , что не так ? почему у меня не работает ? шард ДРВ
Repeat
Wait(250)
#тут надо записать начало фраз которые генерит
# сервак твоего шарда
atpeace = UO.InJournal("You are at peace")
fizzles = UO.InJournal("You lose your")
# Если прирос скил, то прерываем медитацию
# Может ещё прирастет
If valueskill < UO.SkillVal("Meditation",1) Then
Wait(250)
UO.Warmode(1)
Wait(250)
UO.Warmode(0)
End If
Until atpeace or fizzles
If UO.Mana > 99 Then
atpeace = 1
End if
Return atpeace
end sub
sub main()
var bs="0x0e34" #<---тип пустых бланков
var y
# чтобы реже вылетал по unhandle exception
# с этим параметром не работает функция UO.Print
# я её убрал отовсюду
UO.Set("quiet", "1")
while uo.count(bs)
uo.deletejournal()
If UO.MR==0 or UO.NS==0 Then
# нету регов
Return
end if
#Здесь должны быть строки менюшки твоего шарда
uo.waitmenu("Spell Circles","Circle 2","Spell Circle 2","Strength")
uo.useobject(bs)
#тут можно поставить repeat until с анализом uo.injournal
#но я для простоты сейчас ставлю просто задержку
Wait(6000)
# если нет маны - медитируем !
If UO.Mana<10 Then
y = 0
Repeat
wait(1000)
y = skillmeditation()
until y
end if
##################################################################### ; Inscription. v.1.00b (c) Edred ; ; Берем из сундука blank scroll, nightshade, black pearl, ; крафтим из них скролл Magic Arrow (с повторами в случае физлов), ; потом скидываем готовый скролл в тот же сундук. ; Если что-либо кончилось - выход.
sub inscript() VAR Sunduk = '0x400D6AD9' ; Сериал сундука с бланкскроллами и регами VAR Sunduk2 = '0x40180768' ; Сериал сундука для готовых скролов VAR Blank = '0x0E34' ; Тип бланк скролла VAR Arrow = '0x1F4C' ; Тип скроллов Recall VAR Reg1 = '0x0F7B' ; блудмосс VAR Reg2 = '0x0F7A' ; блэкперл VAR Reg3 = '0x0F86' ; мандрейк рутс VAR KR = 20; сколько регов брать за раз
VAR Fizzle = 'You fail to inscribe the scroll' VAR Success = 'You put the' VAR k UO.CancelMenu() CheckLag() ;UO.AutoMenu( 'Spell Circles', 'Fourth Circles' ) ;UO.AutoMenu( 'Circle 4', 'Recall' ) ;UO.AutoMenu ('Spell Circles', 'Fourth Circle', 'Circle 4', 'Recall') UO.UseObject( Sunduk ) wait(1000) While UO.SkillVal( 'Inscription' ) < 1050 ; берем бланк скроллы CheckLag() 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(300) until UO.Count( Blank ) > 0 Else UO.Grab( '100', 'finditem' ) repeat wait(300) until UO.Count( Blank ) == 100 Endif wait(1000) Endif ; берем блудмосс CheckLag() If UO.Count( Reg1 ) == 0 Then UO.FindType( Reg1, -1, Sunduk ) If UO.FindCount() == 0 Then UO.Print( 'Blood Moss not found. Script terminated' ) return Endif If UO.GetQuantity( 'finditem' ) < 100 Then UO.Grab( '0', 'finditem' ) repeat wait(300) until UO.Count( Reg1 ) > 0 Else UO.Grab( '100', 'finditem' ) repeat wait(300) until UO.Count( Reg1 ) == 100 Endif wait(1000) Endif ; берем блэкперл CheckLag() 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(300) until UO.Count( Reg2 ) > 0 Else UO.Grab( '100', 'finditem' ) repeat wait(300) until UO.Count( Reg2 ) == 100 Endif wait(1000) Endif ; берем мандрейк CheckLag() If UO.Count( Reg3 ) == 0 Then UO.FindType( Reg3, -1, Sunduk ) If UO.FindCount() == 0 Then UO.Print( 'Mandrake Roots not found. Script terminated' ) return Endif If UO.GetQuantity( 'finditem' ) < 100 Then UO.Grab( '0', 'finditem' ) repeat wait(300) until UO.Count( Reg3 ) > 0 Else UO.Grab( '100', 'finditem' ) repeat wait(300) until UO.Count( Reg3 ) == 100 Endif wait(1000) Endif
repeat CheckLag() DeleteJournal( Fizzle ) DeleteJournal( Success ) UO.Exec("waitmenu 'Spell Circles' 'Fourth Circle' 'Circle 4' 'Recall'") Wait(1000) 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 OR UO.Count( Reg3 ) == 0 CheckLag() repeat UO.FindType( Arrow ) If UO.FindCount() > 0 Then UO.MoveItem( 'finditem', 0, Sunduk2 ) wait(1000) Endif until UO.Count( Arrow ) == 0
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
Sub CheckLag() UO.DeleteJournal() UO.Click('backpack') repeat wait(500) until UO.InJournal('backpack') end sub
##################################################################### ; Inscription. v.1.00b (c) Edred ; ; Берем из сундука blank scroll, nightshade, black pearl, ; крафтим из них скролл Magic Arrow (с повторами в случае физлов), ; потом скидываем готовый скролл в тот же сундук. ; Если что-либо кончилось - выход.
sub inscript() VAR Sunduk = '0x400D6AD9' ; Сериал сундука с бланкскроллами и регами VAR Sunduk2 = '0x40180768' ; Сериал сундука для готовых скролов VAR Blank = '0x0E34' ; Тип бланк скролла VAR Arrow = '0x1F4C' ; Тип скроллов Recall VAR Reg1 = '0x0F7B' ; блудмосс VAR Reg2 = '0x0F7A' ; блэкперл VAR Reg3 = '0x0F86' ; мандрейк рутс VAR KR = 20; сколько регов брать за раз
VAR Fizzle = 'You fail to inscribe the scroll' VAR Success = 'You put the' VAR k UO.CancelMenu() CheckLag() ;UO.AutoMenu( 'Spell Circles', 'Fourth Circles' ) ;UO.AutoMenu( 'Circle 4', 'Recall' ) ;UO.AutoMenu ('Spell Circles', 'Fourth Circle', 'Circle 4', 'Recall') UO.UseObject( Sunduk ) wait(1000) While UO.SkillVal( 'Inscription' ) < 1050 ; берем бланк скроллы CheckLag() 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(300) until UO.Count( Blank ) > 0 Else UO.Grab( '100', 'finditem' ) repeat wait(300) until UO.Count( Blank ) == 100 Endif wait(1000) Endif ; берем блудмосс CheckLag() If UO.Count( Reg1 ) == 0 Then UO.FindType( Reg1, -1, Sunduk ) If UO.FindCount() == 0 Then UO.Print( 'Blood Moss not found. Script terminated' ) return Endif If UO.GetQuantity( 'finditem' ) < 100 Then UO.Grab( '0', 'finditem' ) repeat wait(300) until UO.Count( Reg1 ) > 0 Else UO.Grab( '100', 'finditem' ) repeat wait(300) until UO.Count( Reg1 ) == 100 Endif wait(1000) Endif ; берем блэкперл CheckLag() 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(300) until UO.Count( Reg2 ) > 0 Else UO.Grab( '100', 'finditem' ) repeat wait(300) until UO.Count( Reg2 ) == 100 Endif wait(1000) Endif ; берем мандрейк CheckLag() If UO.Count( Reg3 ) == 0 Then UO.FindType( Reg3, -1, Sunduk ) If UO.FindCount() == 0 Then UO.Print( 'Mandrake Roots not found. Script terminated' ) return Endif If UO.GetQuantity( 'finditem' ) < 100 Then UO.Grab( '0', 'finditem' ) repeat wait(300) until UO.Count( Reg3 ) > 0 Else UO.Grab( '100', 'finditem' ) repeat wait(300) until UO.Count( Reg3 ) == 100 Endif wait(1000) Endif
repeat CheckLag() DeleteJournal( Fizzle ) DeleteJournal( Success ) UO.Exec("waitmenu 'Spell Circles' 'Fourth Circle' 'Circle 4' 'Recall'") Wait(1000) 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 OR UO.Count( Reg3 ) == 0 CheckLag() repeat UO.FindType( Arrow ) If UO.FindCount() > 0 Then UO.MoveItem( 'finditem', 0, Sunduk2 ) wait(1000) Endif until UO.Count( Arrow ) == 0
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
Sub CheckLag() UO.DeleteJournal() UO.Click('backpack') repeat wait(500) until UO.InJournal('backpack') end sub