Page 1 of 1
Помогите исправить.
Posted: 2006-05-31 14:51:19
by quinta
sub tinker()
VAR Sunduk = '0x404C8013' ; ид сундука
VAR Ingi = '0x1bef' ; тип ингов
VAR Instrum = '0x1ebc' ; тип инструмента
VAR lockpick = '0x0f0e' ; тип бутылок
VAR Kolvo = 800 ; берем из сундука
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.autoMenu ('Tinkering', 'Tools')
UO.autoMenu ('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( lockpick ) > 0 then
UO.FindType( lockpick, -1, -1 )
UO.MoveItem( 'finditem', 0, Sunduk )
wait( 1000 )
UO.Print( 'lockpick' )
end if
Wend
Wend
end sub
Помогите пожалуста зациклить его - чтоб он постоянно брал инги по 800 штук (в данный момент по окончанию ингов в паке он останавливается) и делал бутылки складывая их в другой мешек а не в общий сундук (так как щас он кладет туда же де и берет инги).
Заранее очень благодарен.
Posted: 2006-05-31 15:14:21
by BigMouseI
1) скрипт всегда пихай в код
2) убей аффтара
3) Попробуй так
Code: Select all
sub tinker()
VAR Sunduk = '0x404C8013' ; ид сундука
VAR Ingi = '0x1bef' ; тип ингов
VAR Instrum = '0x1ebc' ; тип инструмента
VAR lockpick = '0x0f0e' ; тип бутылок
VAR Kolvo = 800 ; берем из сундука
VAR k = 0
repeat
UO.FindType( Ingi, -1, Sunduk )
If UO.FindCount() < 10 Then
UO.Print("Iron Ingots not found, script terminated")
return
Endif
UO.Grab( Str( Kolvo ), 'finditem' )
wait( 2000 )
While UO.Count( Ingi ) > 3
UO.Print('Ostalos ' + Str( UO.Count( Ingi ) ) + ' ingots' )
UO.DeleteJournal()
UO.CancelMenu()
UO.autoMenu ('Tinkering', 'Tools')
UO.autoMenu ('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( lockpick ) > 0 then
UO.FindType( lockpick, -1, -1 )
UO.MoveItem( 'finditem', 0, Sunduk )
wait( 1000 )
end if
wend
Until not uo.dead()
end sub
Posted: 2006-05-31 17:20:38
by quinta
Он терь сразу пишет что нет айрона и вырубается.
Posted: 2006-05-31 18:01:19
by Rijo
quinta wrote:Он терь сразу пишет что нет айрона и вырубается.
Ну инжект видит вещи в тех сундуках(контейнерах) которые хоть раз открывались с момента входа в игру. Попробуй открыть и закрыть сундук и запусти скрипт. Сам скрипт я еще не смотрел.
А сообщения что нету айрона вылетает желтыми буквами?
Posted: 2006-05-31 18:09:28
by quinta
Цвет букв желтый. Я сундук сразу открывал вручную.
Posted: 2006-05-31 18:12:50
by Rijo
quinta wrote:Цвет букв желтый. Я сундук сразу открывал вручную.
ну раз желтый значит инжа пишет, а если инжа пишет значит вылетает вот это сообщение
Iron Ingots not found, script terminated А раз вылетает это сообщение, то либо в сундуке нету айрон инготов, либо сундук не был открыт с первого запуска, либо неправильно указан ID сундука, либо неправильно указан тип ингов
Posted: 2006-05-31 18:23:31
by DerMeister =)
Я хз, но иногда помогает взять все параметры
UO.FindType() в кавычки. Пример:
Posted: 2006-05-31 18:26:58
by quinta
Дело в том что первый скрипт который я просил исправить все делает, только он останавливается када закончились инги в паке, а тот что написали второй сразу говорит что нет ингов - мои действия те же что и с первым скриптом - открыл сундук проверил есть ли инги (20к) и запустил - первый работает второй нет. Все типы и ид сундука совпадают в обоих скриптах.
Posted: 2006-05-31 18:27:43
by DerMeister =)
to BigmouseI:
патсулом... Что ты имелл ввиду под этим:
If UO.FindCount() < 10 Then
Расшифровка: "Если у тебя меньше 10 кучек айрона, то условие не выполняется".
Если я тебя правильно понял, то используй
Code: Select all
if uo.getquantity('finditem') < 10 then
Posted: 2006-05-31 18:29:34
by DerMeister =)
quinta wrote:Он терь сразу пишет что нет айрона и вырубается.
BigMouseI ошибся... читай мой пост выше

Posted: 2006-05-31 19:10:46
by quinta
sub tinker()
VAR Sunduk = '0x404C8013' ; èä ñóíäóêà
VAR Ingi = '0x1bef' ; òèï èíãîâ
VAR Instrum = '0x1ebc' ; òèï èíñòðóìåíòà
VAR lockpick = '0x0f0e' ; òèï áóòûëîê
VAR Kolvo = 800 ; áåðåì èç ñóíäóêà
VAR k = 0
repeat
UO.FindType( Ingi, -1, Sunduk )
if uo.getquantity('finditem') < 10 then
UO.Print("Iron Ingots not found, script terminated")
return
Endif
UO.Grab( Str( Kolvo ), 'finditem' )
wait( 2000 )
While UO.Count( Ingi ) > 3
UO.Print('Ostalos ' + Str( UO.Count( Ingi ) ) + ' ingots' )
UO.DeleteJournal()
UO.CancelMenu()
UO.autoMenu ('Tinkering', 'Tools')
UO.autoMenu ('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( lockpick ) > 0 then
UO.FindType( lockpick, -1, -1 )
UO.MoveItem( 'finditem', 0, Sunduk )
wait( 1000 )
end if
wend
Until not uo.dead()
end sub
Исправил все как сказали - он взял инги сделал бутли и вырубился ничего не сказав - оталось 19к ингов -((( как его зациклить чтоб он не останавливался и отработал все инги. Так как этот щас работает - работал и первый скрипт.
Posted: 2006-05-31 19:37:27
by omi4
Code: Select all
sub tinker()
var Sunduk = '0x404C8013'
var Ingi = '0x1BEF'
var Instrum = '0x1EBC'
var lockpick = '0x0F0E'
var Kolvo = 800
var LTimer
UO.CancelMenu()
UO.AutoMenu ('Tinkering', 'Tools')
UO.AutoMenu ('Tools', 'Empty bottle')
repeat
if UO.Count(Ingi) < Kolvo then
UO.MoveItem( Sunduk + '.' + Ingi, Kolvo - UO.Count(Ingi))
if UO.Count(Ingi) < Kolvo && UO.Count(Instrum) then
UO.Print("Iron Ingots not found, script terminated")
UO.CancelMenu()
return
end if
end if
while UO.Count(Ingi) > 3 && UO.Count(Instrum)
UO.DeleteJournal()
LTimer = UO.Timer()
UO.UseType(Instrum)
repeat
wait(500)
until UO.InJournal('You put|fail') || LTimer + 60 > UO.Timer()
if UO.Count(lockpick) then
UO.MoveItem( '^' + lockpick, 1, Sunduk )
end if
wend
until UO.Dead()
UO.CancelMenu()
end sub