Прочитал скрипт вкратце.
Code:
uo.useobject(Sunduk)
wait(200)
Угу, а если во время World Save'а будет?
Тут лучше checklag() или сверять по lastcontainer, кароче статическая пауза не катит.
Code:
while 1==1
Тебе конечно пофиг, но инжект будет каждую итерацию цикла сравнивать 1 и 1, мелочь, но лучше написать while true.
Code:
UO.FindType(TLogs,'0x0000','backpack')
While UO.GetQuantity('finditem')==0
Для таких целей используется uo.FindCount()
Code:
UO.FindType(TLogs,'0x0000',Sunduk)
wait(200)
Пауза после FindType не нужна.
Code:
UO.Grab('1','finditem')
WendА вот после мува - нужна и даже очень, причём динамечкая. Ну или хотя бы checklag().
+ не совсем логично расставлены комманды в скрипте, я бы предложил так:
Code:
UO.FindType(TLogs,'0x0000','backpack')
If Not UO.FindCount()
UO.FindType(TLogs,'0x0000',Sunduk)
UO.Grab('1','finditem')
checklag()
End If
Кроме того, следует учесть, что вытащить 1 лог из БОЛЬШОЙ стопки - на подавляющем большинстве шардов - не получится.
Читаем скрипт дальше )
Code:
Wend
wait(200)
Зачем тут пауза? Может после каждой строчки паузы натолкать?)
Code:
uo.WaittargetType(TLogs)
uo.Usetype(TDagger)
uo.WaitMenu('What do you want to carve the wood into?','shaft (1 log)')
wait (1000)
Сначала WaitMenu, потом остальные комманды.
Code:
wait (1000)
uo.DeleteJournal()
Не нужна тут пазуа, вот скажи, зачем тебе СТОЛЬКО пауз?) Тебе надо, чтобы скрипт медленно работал?))
Code:
while not (uo.InJournal("You put") or uo.InJournal("You fail"))
wait(10)
wend Несколько устаревшая конструкция с двумя InJournal. И repeat .. until тут использовать логичнее.
Пауза тоже маловата, тут проверять 100 раз в секунду - не надо, хватит и 20.
Вобщем лучше так (если версия Injection.dll поддерживает):
Code:
repeat
wait( 50 )
until uo.injournal( "You put|You fail" )
Читаем скрипт дальше:
Code:
if uo.weight > 200 then
UO.SetReceivingContainer(Sunduk)
wait(200)
UO.FindType(TShaft)
if UO.GetQuantity('finditem')>0 then
UO.Grab('0','finditem')
wait(200)
end if
UO.UnSetReceivingContainer()
end if
wend
Типа разгрузка, да?) А ведь можно и проще, да и разгружаться реже:
Code:
if uo.weight >= uo.str*4 then
while uo.count( TShaft )
uo.MoveItem( "^" + TShaft, "0", Sunduk )
checklag()
wend
endif
uo.str*4 - чуть меньше максимального веса.
Касательно проблемы с тем, что после физла - не крафтит - проверь сообщение, которое выдаёт при физле:
Code:
uo.InJournal("You fail")
PS: Надо бы почаще так расписывать, мб научаться люди чему-нибудь.