Играю я на сервере Махаон. Там есть такой заворот: крафтятся гвозди баночками по пять штук. Для того, чтобы они сложились в стек, необходимо два раза тыкнуть мышей по какой-то из банок и таргетом указать на такую-же банку. Ну никак не могу написать такую макру. Все время получается или не видит гвоздей совсем или тыкает по 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
sub Gvozdi()
var gvo
var gvozdi = '0x102E'
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
sub Gvozdi()
var gvo, exit
var gvozdi = '0x102E'
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