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