Code:
while not uo.Dead()
mx = UO.GetX("self")
my = UO.GetY("self")
mz = UO.GetZ("self")
UO.DeleteJournal()
for i = mx-1 to mx+1
for j = my-1 to my+1
UO.Print("Копаем в координатах: "+str(mx-i)+" "+str(my-j))
while not UO.InJournal("Здесь больше нет руды") and not UO.InJournal("Слишком далеко") and not UO.InJournal("Вы не можете добывать здесь")
uo.DeleteJournal()
if uo.waiting() then
uo.canceltarget()
endif
UO.Waittargettile('1341', str(i), str(j), str(mz))
UO.exec("useobject shovel")
while not UO.InJournal("Здесь больше нет руды") and not UO.InJournal("Вы поранились киркой") and not UO.InJournal("Слишком далеко") and not UO.InJournal("Вы не можете добывать здесь")
wend
wend
В этом куске, когда я ставлю проверку на появление гампа антимакроса, у меня через какое-то время хорошей стабильной работы, начинает появляться такой глюк:
Персонаж использует кирку (объект shovel) дальше соответственно команда uo.waittargettile должна указывать координаты, в которые должен быть направлен прицел, там где копать. А вместо этого появляется сообщение "Usage: waittargettile [lasttile]\[tilenum [x] [y] [z]]".
Если просто в окошке клиента ввести команду ,waittargettile (без координат) то как раз и появится это сообщение.
Вывод - почему-то скрипт на каком-то моменте не видит UO.Waittargettile(
'1341', str(i), str(j), str(mz)) а начинает вести себя как при вводе пустого uo.waittargettile()
Абсолютно идентичная картина наблюдалась и с uo.useobject('shovel').
Тоже через минут 5-10 после работы макроса он переставал видеть то, что находится в круглых скобках.
Методом тыка пришел к "глупому" решению перефразировать uo.useobject('shovel') на uo.exec("useobject shovel") и пока что проблема с киркой ушла.
_________________
ХХДЕНТОНХХ: Холодостойкий Хронометрирующий Дроид с Единым Наступательным Трансмутатором для Ограниченного Нападения и Хронометрированного Хищения
http://uokings.ru/news.php