я этим качал только он без добора инструментов .. такчто клади несколько сразу в пак (скрипт пару раз запарывался, например при поломке инструмента скрипт может остановиться а может начать жать на другой)
Code: Select all
#####################################################################
; Tinker. v.1.03b (c) Edred
;
; Чар берет из сундука инготы, крафтит из них бутылки
; и складывает эти бутылки в этот же сундук.
; Если инги закончились - выход.
;
sub tinker()
VAR Sunduk = '0x406086B0' ; Сериал сундука
VAR Ingi = '0x1BF2' ; Тип ингов
VAR Instrum = '0x1EBC' ; Тип инструмента тинкера
VAR Bottle = '0x0F0E' ; Тип бутылки
VAR Kolvo = 200 ; Брать ингов
VAR k = 0
UO.SetGlobal( 'TimeProcess', str( UO.Timer() ) )
; Начало отсчета скрипта
While TRUE
EatChar( Sunduk, 5, 2, 20 )
UO.FindType( Ingi, -1, Sunduk ) ; Ищем инги в сундуке
If UO.FindCount() == 0 Then
UO.Print("Iron Ingots not found, script terminated")
return
Endif
UO.Grab( Str( Kolvo ), 'finditem' )
wait( 2000 )
While UO.Count( Ingi ) > 3
; Пока в паке есть инги
; UO.CancelMenu()
; UO.Print('Ostalos ' + Str( UO.Count( Ingi ) ) + ' ingots' )
UO.DeleteJournal()
CheckLag()
UO.WaitMenu ('Tinkering', 'Tools', 'Tools', 'empty bottle' )
UO.UseType( Instrum )
k = 0
while NOT UO.InJournal('You put') AND NOT UO.InJournal('failed.') AND ( k < 100 )
k = k + 1
wait(500)
wend
if UO.Count( Bottle ) > 5 then
UO.FindType( Bottle, -1, -1 )
UO.MoveItem( 'finditem', 0, Sunduk )
wait( 1000 )
UO.Print( 'Bottle moved' )
end if
Wend
Wend
end sub
#####################################################################
; ================================================================
; Процедура подкормки чара. Параметры: сериал контейнера с медом, номер
; сообщения до которого кормить, сколько съесть меда после сообщения,
; как часто кормить чара.
; Прохождение последнего периода контролируется через глобальную переменную
; TimeProcess.
;
; ver. 1.07 (c) Edred
;
Sub EatChar( Sunduk, Nom, Add, TimeWait )
; сообщения при кормежке
UO.Print( 'TEST: eat to ' + str( Nom ) + ' message and ' + str( Add ) + ' more each ' + str( TimeWait ) + ' minutes' )
DIM Eat[8]
Eat[0] = ''
Eat[1] = 'You eat the food, but are still extremely hungry'
Eat[2] = 'After eating the food, you fell much less hungry'
Eat[3] = 'You eat the food, and begin to feel more satiated'
Eat[4] = 'You are nearly stuffed, but manage to eat the food'
Eat[5] = 'You fell quite full after consuming the food'
Eat[6] = 'You are stuffed!'
Eat[7] = 'You are simply too full to eat any more!'
VAR Med = '0x097B' ; тип меда для подкормки
VAR i, EatC, j, k, flag
; проверим, пора ли кормиться
i = Val( UO.GetGlobal( 'TimeProcess' ) )
i = ( UO.Timer() - i ) / 600
If i < TimeWait Then
; рано кормиться
UO.Print( 'Eat early! ' + str( i ) + ' from ' + str( TimeWait ) )
return
Endif
If Nom > 0 AND Nom < 8 Then
EatC = Eat[Nom]
Else
EatC = Eat[7]
Endif
UO.FindType( Med, '-1', Sunduk )
If UO.FindCount() == 0 Then
; мед кончился
UO.SetGlobal( 'TimeProcess', str( UO.Timer() ) )
return
Endif
UO.Grab( '60', 'finditem' )
Wait( 1000 )
CheckLag()
For k = 1 To 7
DeleteJournal( Eat[k] )
Next
flag = 0
If Nom < 7 Then
UO.UseType( Med )
Wait( 1000 )
CheckLag()
For k = Nom + 1 To 7
If UO.InJournal( Eat[k] ) Then
flag = 1
Endif
Next
Endif
If flag == 0 Then
repeat
DeleteJournal( EatC )
UO.UseType( Med )
Wait( 1000 )
CheckLag()
until NOT UO.InJournal( EatC )
If Add > 0 Then
For j = 1 To Add
UO.UseType( Med )
Wait( 1000 )
CheckLag()
Next
Endif
Endif
; хватит кормиться
; выгрузим остатки меда обратно
UO.Findtype( Med, '-1', 'backpack' )
UO.MoveItem( 'finditem', 0, Sunduk )
Wait( 1000 )
CheckLag()
; Сбросим счетчик
UO.SetGlobal( 'TimeProcess', str( UO.Timer() ) )
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