Code: Select all
#####################################################################
; Training of Mining, ver 1.03, (c) Edred
sub Smelt()
VAR Ruda1 = '0x19B9' ; Тип руды
VAR Ruda2 = '0x19B8' ; Тип руды - 3 шт.
VAR Ruda3 = '0x19BA' ; Тип руды - 2 шт.
VAR Ruda4 = '0x19B7' ; Тип руды - 1 шт.
VAR Ing1 = '0x1BEF' ; Тип ингов металлов
VAR Ing2 = '0x1BF2' ; Тип ингов строймата
VAR MaxVes = 500 ; Максимальный вес пака
repeat
UO.Findtype( Ruda1, -1, 1 ) ; Ищем руду на земле
If UO.Findcount() == 0 Then
UO.Findtype( Ruda2, -1, 1 )
If UO.Findcount() == 0 Then
UO.Findtype( Ruda3, -1, 1 )
If UO.Findcount() == 0 Then
UO.Findtype( Ruda4, -1, 1 )
If UO.Findcount() == 0 Then
UO.Print( "No more ore for smelt..." )
Return
Endif
Endif
Endif
Endif
UO.Exec( "moveitem finditem 1" ) ; Тащим 1 в пак
Wait( 1000 )
UO.Useobject( 'finditem' ) ; переплавляем
Wait( 1000 )
If UO.Weight > MaxVes Then
; Максимальный вес пака превышен - разгружаемся
UO.Findtype( Ing1, -1, -1 )
If UO.Findcount() > 0 Then
UO.Drophere( 'finditem' )
Wait( 1000 )
Endif
UO.Findtype( Ing2, -1, -1 )
If UO.Findcount() > 0 Then
UO.Drophere( 'finditem' )
Wait( 1000 )
Endif
Endif
until NOT Uo.CountGround( Ruda1 ) AND NOT UO.CountGround( Ruda2 ) AND NOT UO.CountGround( Ruda3 ) AND NOT UO.CountGround( Ruda4 )
UO.Print( "No more ore for smelt..." )
endsub
Code: Select all
#####################################################################
; Teiloring. v.1.03b (c) Edred
;
sub teiloring()
VAR Sunduk1 = '0x4017439B' ; Сериал сундука с пустыми мешками
VAR Sunduk2 = '0x4000F46C' ; Сериал пустого сундука
VAR Meshok = '0x0E76' ; Тип мешка
VAR Shkur = '0x1067' ; Тип шкур
VAR Vosk = '0x1423' ; Тип воска
VAR Kit = '0x0F9D' ; Тип инструмента тейлора
VAR Map = '0x14EB' ; Тип карты
VAR Kolvo = 200 ; Брать шкур и воска
VAR MeshSer, j, ShkurSer, k
VAR Med = '0x09EC' ; Тип меда
While TRUE
UO.FindType( Shkur, -1, 1 ) ; Ищем шкуры на полу
If UO.FindCount() == 0 Then
UO.Print("Leathers not found, script terminated")
return
Endif
UO.Grab( Str( Kolvo ), 'finditem' ) ; Кладем логи в пак
wait( 2000 )
UO.FindType( Vosk, -1, 1 ) ; Ищем и берем воск
If UO.FindCount() == 0 Then
UO.Print("Beeswaxs not found, script terminated")
return
Endif
UO.Grab( Str( Kolvo ), 'finditem' )
wait( 2000 )
UO.FindType( Meshok, -1, Sunduk1 ) ; Ищем мешок в сундуке 1
MeshSer = UO.GetSerial( 'finditem' )
UO.Grab( '1', 'finditem' ) ; Кладем его в бэкпак
wait( 2000 )
UO.MoveItem( MeshSer, 0, Sunduk2 )
wait( 2000 )
While UO.Count( Shkur ) > 1
; Пока в паке есть шкуры
UO.Print('Ostalos ' + Str( UO.Count( Shkur ) ) + ' shkur' )
UO.FindType( Shkur, -1, 'backpack' )
ShkurSer = UO.GetSerial( 'finditem' )
UO.CancelMenu()
UO.DeleteJournal()
UO.WaitMenu ("Leather", "Blank's", "Blank's", "blank map" )
UO.WaitTargetObject( ShkurSer )
UO.UseType( Kit )
k = 0
while NOT UO.InJournal('You put') AND NOT UO.InJournal('fail') AND ( k < 30 )
k = k + 1
wait(500)
wend
; Wait( 14000 )
; Скрафтили карту
; Сразу переложим ее в мешок
if UO.Count( Map ) > 0 then
UO.FindType( Map, -1, 'backpack' )
UO.MoveItem( 'finditem', 0, MeshSer )
wait( 2000 )
UO.Print( 'Karta perelozhena' )
end if
Wend
Wend
end sub
Code: Select all
#####################################################################
; Tinker. v.1.00b (c) Edred
;
; Чар берет из сундука инготы, крафтит из них бутылки
; и складывает эти бутылки в этот же сундук.
; Если инги закончились - выход.
;
sub tinker()
VAR Sunduk = '0x4042B1A1' ; Сериал сундука
VAR Ingi = '0x1BEF' ; Тип ингов
VAR Instrum = '0x1EBC' ; Тип инструмента тинкера
VAR Bottle = '0x0F0E' ; Тип бутылки
VAR Kolvo = 200 ; Брать ингов
VAR k = 0
While TRUE
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 ) > 0
; Пока в паке есть инги
UO.Print('Ostalos ' + Str( UO.Count( Ingi ) ) + ' ingots' )
UO.DeleteJournal()
UO.CancelMenu()
UO.WaitMenu ('Tinkering', 'Tools', 'Tools', 'empty bottle' )
UO.UseType( Instrum )
k = 0
while NOT UO.InJournal('You put') AND NOT UO.InJournal('fail') AND ( k < 30 )
k = k + 1
wait(500)
wend
if UO.Count( Bottle ) > 0 then
UO.FindType( Bottle, -1, -1 )
UO.MoveItem( 'finditem', 0, Sunduk )
wait( 1000 )
UO.Print( 'Bottle moved' )
end if
Wend
Wend
end sub
Code: Select all
#####################################################################
; Carpentry. v.1.12b (c) Edred
;
; Чар берет из сундука 1 пустой мешок, кладет этот мешок в сундук 2,
; берет с пола логи, крафтит из них удочки и складывает эти удочки
; в этот мешок в сундуке 2. Если логи на полу или пустые мешки
; кончились - выход
;
sub carpentry()
VAR Sunduk1 = '0x4017439B' ; Сериал сундука с пустыми мешками
VAR Sunduk2 = '0x4000F46C' ; Сериал пустого сундука
VAR Meshok = '0x0E76' ; Тип мешка
VAR Logi = '0x1BDD' ; Тип логов
VAR Rubanok = '0x1031' ; Тип инструмента карпентера
VAR Udochka = '0xDBF' ; Тип удочки
VAR Kolvo = 460 ; Брать логов (2 лога = 1 удочка)
VAR MeshSer, j, k
While TRUE
UO.FindType( Logi, -1, 1 ) ; Ищем логи на полу
UO.Grab( Str( Kolvo ), 'finditem' ) ; Кладем логи в пак
wait( 2000 )
If UO.FindCount() == 0 Then
UO.Print("Logs not found, script terminated")
return
Endif
UO.FindType( Meshok, -1, Sunduk1 ) ; Ищем мешок в сундуке 1
MeshSer = UO.GetSerial( 'finditem' )
UO.Grab( '1', 'finditem' ) ; Кладем его в бэкпак
wait( 2000 )
UO.MoveItem( MeshSer, 0, Sunduk2 )
wait( 2000 )
While UO.Count( Logi ) > 0
; Пока в паке есть логи
UO.Print('Ostalos ' + Str( UO.Count( Logi ) ) + ' logov' )
UO.DeleteJournal()
UO.CancelMenu()
UO.WaitMenu ('Carpentry', 'Weapons & Tools', 'Weapons & Tools', 'fishing' )
UO.UseType( Rubanok )
k = 0
while NOT UO.InJournal('You put') AND NOT UO.InJournal('fail') AND ( k < 30 )
k = k + 1
wait(500)
wend
; Wait( 14000 )
; Скрафтили удочку
; Сразу переложим ее в мешок
if UO.Count( Udochka ) > 0 then
UO.FindType( Udochka, -1, 'backpack' )
UO.MoveItem( 'finditem', 0, MeshSer )
wait( 2000 )
UO.Print( 'Udochka perelozhena' )
end if
Wend
Wend
end sub