Пробуй вот так. Предварительно перед запуском открой сундук с логами и кинжалами (штук 10 на всякий положи).
Code:
VAR LastTimer, itemm, timemove
VAR Container = '0x4042B1A1' ; Сериал сундука
VAR log = '0x1BDD' ; Тип логов
VAR Shafts = '0x1BD4' ; Тип шафтов
VAR Instrum = '0x0F51' ; Тип кинжалов dagger
var item = Shafts
var msg ='You put|положили|fail|не удалось|You broke|сломали'
var menu = "waitmenu 'What do you want to carve' 'shaft'"
var printcolour = '1069'
sub bowcraft()
UO.CancelMenu()
WHILE NOT UO.Dead()
GET(log, Container, 1, 7)
UO.DeleteJournal()
LastTimer=UO.Timer()
Repeat
UO.DeleteJournal()
LastTimer=UO.Timer()
UO.exec( menu )
UO.Waittargettype ( log )
UO.Usetype( Instrum )
repeat
wait( 100 )
until UO.InJournal( msg ) or UO.Timer()>LastTimer+150
Until UO.Count( item ) > 0
checklag()
PUT(item, Container)
UO.FindType( item, -1, Container)
uo.charprint(printcolour,'Сделано: '+Str(UO.GetQuantity('finditem'))) ; если будет ошибка - удалить строку!
WEND
end sub
Sub GET(item, cont, min, max) ; предмет, откуда, минимум, сколько брать
If UO.Count( item ) < min Then
UO.FindType( item, '-1', cont )
if UO.FindCount() > 0 Then
uo.charprint(printcolour,'Сырья в сундуке: '+Str(UO.GetQuantity('finditem')) ) ; если будет ошибка - удалить строку!
itemM=UO.GetSerial('finditem')
timemove=UO.Timer()
while UO.ContainerOf(itemM)==cont && timemove+20>UO.Timer()
uo.moveitem('finditem', max, 'backpack')
wait(300)
wend
else
uo.charprint(printcolour, 'Полностью кончилось сырье' ) ; если будет ошибка - удалить строку!
UO.CancelMenu()
MyTerminate()
endif
Endif
end sub
Sub PUT(item, cont)
while UO.Count( item ) > 0
UO.FindType( item, -1, -1 )
itemM=UO.GetSerial('finditem')
timemove=UO.Timer()
UO.MoveItem( 'finditem', 0, cont )
while UO.ContainerOf(itemM)=='my' && timemove+20>UO.Timer()
wait(300)
wend
wend
end sub
Sub DeleteJournal(msg)
While UO.InJournal(msg)
UO.SetJournalLine(UO.InJournal(msg) - 1,'')
wend
endsub
Sub MyTerminate()
UO.Set('quiet','1')
UO.CancelMenu()
UO.IgnoreReset()
UO.Set('quiet','0')
UO.Exec('terminate all')
end sub
Sub checklag()
DeleteJournal("ackpack")
UO.Click("backpack")
repeat
wait(100)
until UO.InJournal("ackpack")
end sub
Подредактировал. Теперь точно работает.