Играю я на сервере Махаон. Там есть такой заворот: крафтятся гвозди баночками по пять штук. Для того, чтобы они сложились в стек, необходимо два раза тыкнуть мышей по какой-то из банок и таргетом указать на такую-же банку. Ну никак не могу написать такую макру. Все время получается или не видит гвоздей совсем или тыкает по 1 банке и таргет возвращает на нее-же.
Условие еще такое... гвозди можно складывать только в паке, не в мешочках, не на земле (даже если мешочек лежит в инвентаре).
sub Gvozdi() if uo.Waiting() then uo.CancelTarget() endif var a,Exit dim gvozdi[1] gvozdi[0]=0x102E uo.Print('Складываем гвозди.') wait(500) for a=0 to 0 Exit=0 repeat uo.findtype(gvozdi[a],-1,'backpack') if uo.GetQuantity('finditem')>0 then uo.waittargettype('0x102E') uo.useobject('finditem') wait(1500) else Exit=1 endif until Exit==1 next uo.Print('Гвозди сложены.') end sub
sub Gvozdi() var gvozdi = '0x102E ' var Exit = 0 if uo.Waiting() then uo.CancelTarget() endif uo.Print('Складываем гвозди...') wait(500) repeat uo.findtype(gvozdi,-1,'backpack') if uo.FindCount() > 0 then uo.waittargettype('gvozdi') uo.useobject('finditem') wait(1500) else Exit = 1 endif until Exit = 1 uo.Print('Гвозди сложены.') end sub
ХХДЕНТОНХХ: Холодостойкий Хронометрирующий Дроид с Единым Наступательным Трансмутатором для Ограниченного Нападения и Хронометрированного Хищения
http://uokings.ru/news.php
uo.findtype(gvozdi,-1,'backpack') if uo.findcount() then uo.CancelTarget() wait(300) gvo=UO.GetSerial('finditem') wait(400) UO.Ignore('finditem') wait(100) uo.findtype(gvozdi,-1,'backpack') uo.waittargettype('finditem') wait(100) uo.useobject(gvo) UO.IgnoreReset() else return end if end sub
uo.Print('Складываем гвозди.') repeat uo.DeleteJournal() uo.findtype(gvozdi,-1,'backpack') if uo.findcount()>1 then uo.CancelTarget() wait(300) gvo=UO.GetSerial('finditem') wait(400) UO.Ignore('finditem') wait(100) uo.findtype(gvozdi,-1,'backpack') uo.waittargetobject('finditem') wait(100) uo.useobject(gvo) UO.IgnoreReset() repeat wait(100) until uo.injournal('Вы пересыпали гвозди') else exit = 1 end if until exit == 1 end sub
ХХДЕНТОНХХ: Холодостойкий Хронометрирующий Дроид с Единым Наступательным Трансмутатором для Ограниченного Нападения и Хронометрированного Хищения
http://uokings.ru/news.php
значение переменной exit - это условие для остановки макроса. Если найденных объектов не больше одного, то выполняется условие прекращения цикла repeat .... until exit == 1
ХХДЕНТОНХХ: Холодостойкий Хронометрирующий Дроид с Единым Наступательным Трансмутатором для Ограниченного Нападения и Хронометрированного Хищения
http://uokings.ru/news.php
return закрывает макрос. Могу ошибаться, конечно, но у меня не работал как возвратная функция...
ХХДЕНТОНХХ: Холодостойкий Хронометрирующий Дроид с Единым Наступательным Трансмутатором для Ограниченного Нападения и Хронометрированного Хищения
http://uokings.ru/news.php