
З.Ы. Не предлагать мувайтем в контейнер... не канает... чтоб добавить в стек нужно именно перащить айтем на айтем того-же типа...
Moderators: Murderator+, Murderator
Code: Select all
sub ToMove()
VAR Sunduk = '0x00000000' ; ID сундука, в котором находится стек
VAR Steck = '0x0000' ; тип стека
VAR SteckItem = '0x0000' ; тип вещи, которую будем добавлять в стек
VAR SteckX, SteckY, k
UO.Exec( 'set finddistance 2' )
UO.FindType( Steck, '-1', Sunduk )
SteckX = UO.GetX( 'finditem' )
SteckY = UO.GetY( 'finditem' )
UO.FindType( SteckItem, '-1', '1', SteckX, SteckY ) ;
UO.Print( 'Собираем...' )
k = 0
While UO.FindCount() > 0
UO.MoveItem( 'finditem', '0', Sunduk)
CheckLag()
UO.FindType( SteckItem, '-1', '1' )
k = k + 1
Wend
UO.Print( 'Сбор закончен. Собранно ' +STR( k ) + ' предметов.' )
end sub
Code: Select all
sub ToMove()
VAR Sunduk = '0x00000000' ; ID сундука, в котором находится стек
VAR Steck = '0x0000' ; тип стека
VAR SteckItem = '0x0000' ; тип вещи, которую будем добавлять в стек
VAR SteckX, SteckY, k
UO.Exec( 'set finddistance 2' )
UO.FindType( Steck, '-1', Sunduk )
SteckX = UO.GetX( 'finditem' )
SteckY = UO.GetY( 'finditem' )
UO.FindType( SteckItem, '-1', '1' ) ; +++ Убрал отсюда...
UO.Print( 'Собираем...' )
k = 0
While UO.FindCount() > 0
UO.MoveItem( 'finditem', '0', Sunduk, SteckX, SteckY,0) ; +++ ... и вмастил сюда.
Wait(1000)
UO.FindType( SteckItem, '-1', '1' )
k = k + 1
Wend
UO.Print( 'Сбор закончен. Собранно ' +STR( k ) + ' предметов.' )
end sub
Code: Select all
#####################################################################
sub AutoMove()
; Автоматическое перекладывание предметов одного типа и цвета из одного
; контейнера в другой. Поддержка двух режимов - драга на стопку и драга
; на контейнер.
; v.1.04b (c) Edred
VAR MyPause = 600
VAR Type1, Color1, s, n, SerStopka, SumCol = 0
UO.Print( 'Select sending container' )
UO.Exec('addobject TmpCont1')
While UO.Targeting()
Wait(100)
Wend
UO.Print( 'Select targeting container' )
UO.Exec('addobject TmpCont2')
While UO.Targeting()
Wait(100)
Wend
UO.Print( 'Select type for move' )
UO.Exec('addobject TmpObj1')
While UO.Targeting()
Wait(100)
Wend
Type1 = UO.GetGraphic( 'TmpObj1' )
Color1 = UO.GetColor( 'TmpObj1' )
While UO.Targeting()
Wait(100)
Wend
s = ''
s = UO.asmInputString("Задайте размер порции:","500")
If s == '' Then
UO.Print( 'Invalid count of objects!' )
return
Endif
VAR ToDo = UO.asmInputList("Выберите способ:","'Драг в стопку';'Драг на контейнер'")
SerStopka = UO.GetSerial( 'TmpCont2' )
n = val( s )
If n < 0 OR n > 20000 Then
UO.Print( 'Invalid count of objects!' )
return
Endif
repeat
If ToDo == 1 Then
UO.FindType( Type1, Color1, 'TmpCont2' )
If UO.FindCount() > 0 Then
SerStopka = UO.GetSerial( 'finditem' )
Else
SerStopka = UO.GetSerial( 'TmpCont2' )
Endif
Endif
UO.FindType( Type1, Color1, 'TmpCont1' )
If UO.FindCount() > 0 Then
If UO.GetQuantity( 'finditem' ) < n Then
SumCol = SumCol + UO.GetQuantity( 'finditem' )
Else
SumCol = SumCol + n
Endif
UO.MoveItem( 'finditem', str(n), SerStopka )
Wait( MyPause )
CheckLag()
UO.Print( 'I moved ' + str(SumCol) + ' items' )
Else
UO.Print( 'Automove finished' )
Return
Endif
until False
endsub
Code: Select all
#####################################################################
sub AutoMove2()
; Автоматическое перекладывание некучкующихся предметов одного типа и цвета
; из одного контейнера в другой. Осуществляется драг на контейнер.
; v.1.05b (c) Edred
;
VAR MyPause = 600
VAR Type1, Color1, s, n, SerStopka, SumCol = 0, Howmany='200'
UO.Print( 'Select sending container' )
UO.Exec('addobject TmpCont1')
While UO.Targeting()
Wait(100)
Wend
UO.Print( 'Select targeting container' )
UO.Exec('addobject TmpCont2')
While UO.Targeting()
Wait(100)
Wend
UO.Print( 'Select type for move' )
UO.Exec('addobject TmpObj1')
While UO.Targeting()
Wait(100)
Wend
Type1 = UO.GetGraphic( 'TmpObj1' )
Color1 = UO.GetColor( 'TmpObj1' )
While UO.Targeting()
Wait(100)
Wend
Howmany = UO.asmInputString("Сколько всего переложить?",Howmany)
If Howmany == '' Then
UO.Print( 'Invalid count of objects!' )
return
Endif
repeat
UO.FindType( Type1, Color1, 'TmpCont1' )
If UO.FindCount() > 0 Then
UO.MoveItem( 'finditem', '0', 'TmpCont2' )
Wait( MyPause )
CheckLag()
SumCol = SumCol + 1
If SumCol == val(Howmany) Then
UO.Print( 'Script finished' )
return
Endif
Else
UO.Print( 'Script finished' )
return
Endif
until False
endsub
Code: Select all
sub main()
UO.Exec('addobject Stopka')
While UO.Targeting()
Wait(100)
Wend
UO.Exec('set finddistance 1')
repeat
uo.findtype(UO.GetGraphic('Stopka'),UO.GetColor('Stopka'),1)
uo.moveitem('finditem',0,'Stopka',uo.getx('Stopka'),uo.gety('Stopka'),uo.getz('Stopka'))
wait(100)
until uo.findcount()<1
end sub