Скрипт приводить не буду. Скажу только, что это скрипт на майнинг и что он использует file i/o
В нем есть такое место :
Code: Select all
if UO.count("TWF") then
UO.Usetype("TWF")
else
uo.print("Can't find shovel")
return -1;
endif
Скрипт работает отлично какое-то время (иногда чар успевает несколько раз набрать свой вес, реколльнуться домой, разгрузиться и вернуться в шахту)
Но в один прекрасный момент (который может наступить скоро, или наоборот - нескоро) выдает сабж, причем последней обрабатываемой строкой перед появлением ошибки всегда является UO.Usetype("TWF"). Повторный запуск скрипта выявляет то, что скрипт не находит больше лопату в бакпаке. Если перелогиниться, то скрипт снова работает нормально - до поры. Если будет время - проверю, как он поведет себя, если положить в бакпак две лопаты.
Еще вопрос не совсем по теме - я пользовался ATOM'ом для передачи команд "exec scriptname" в инжекшн при двух параллельно работающих клиентах. Так вот - один из клиентов через какое-то время виснет. Причем виснуть он может по-разному, в зависимости от реализации функций. Например, у него может накопиться гора вызванных функций, которые не закрываются. Тогда в какой-то момент вылезает сабж, а за ним - куча непонятных эрроров типа SetScript - и все указывают на разные строки скрипта.
Если поставить uo.terminate("имя функции") в конце этой самой функции, то еще страньше - клиент перестаёт отвечать на мои действия (машь, клава) и вообще глючит - но функции исправно вызываются, работают и завершаются.