Навскидку: в динамические паузы на ожидание сообщения нужно ввести еще ограничение по времени. То есть сюда:
Code:
while not uo.InJournal('full') and not uo.InJournal('stuffed') and not uo.InJournal('hungry') and not uo.InJournal('satiated') and not uo.Dead()
wait(100)
wend и сюда:
Code:
until uo.InJournal('too full') or uo.Dead()и сюда:
Code:
while not uo.InJournal('You put') and not uo.InJournal('You have failed')
wait(500)
wend
Организовать просто (можешь посмотреть в моих скриптах). Введи переменную, обнули ее перед циклом ожидания сообщения, а внутри цикла наращивай ее. Ну и в проверку окончания цикла добавь чтобы эта переменная не была больше чего-либо. Это зависит от того, насколько долго то или иное действие у вас на шарде (максимальное время). Скажем, максимум за 3 минуты любая же вещь скрафтится? Значит, такого времени с избытком хватит. Так что если скрипт по какой-либо причине не поймал мессагу, то он не будет тупо висеть в ожидании этой мессаги.
Причем у тебя там где-то еще осталась подобная проверка через lasttimer. Но она не там, где надо.
Второе: После граба и ожидания 1000 мс (это ожидание лучше перенести в if, почему оно снаружи), надо добавить чеклаг.
Третье: граб желательно сделать циклом с проверкой на то, что что-то перемещено. Посмотри, если скрипт у тебя "тупо застревает" при том, что ингов в паке нету - то тогда все понятно. Просто граб из-за лага или сэйва мира не прошел, а дальше у тебя скрипт пытается крафтить, ты получаешь мессагу, что не из чего, но такая мессага у тебя отсутствует - вот скрипт стоит и ждет непонятно чего.
Дерзай. А "кривые ручки" лечатся практикой. У всех вначале были кривые.
_________________
Ни один скрипт не работает? Пора обновить
Инжект...
Все работает, но хочется большего? Пора переходить на
стелс...