
Предварительный набросок\шаблон:
Code: Select all
###############################################################
### UniCraft (Adept_abp) ##################################
###############################################################
# Скрипт написан(сконструирован :) ) для всех крафтовых скилов,
# чтобы не заморачиваться с разнообразием. :)
# Для работы требуется наличие
# а) Ресурс\сырьё(ingot\log\reagent\(blank map\scroll))
# б) Инструмент(Tinker Tools\hammer\mortar or etc.)
# в) Сундук\мешок куда\откуда все берётся\складывается
# г) Начальный 30% скилл для раскачки
# д) Умение вставить нужные параметры переменных в скрипте
var pack, sunduk, q, r, c, tools ; резервируем переменные
pack='backpack' ; контейнер куда будет перемещаться сырьё, для последующего использования
sunduk='0x4021B76D' ; Контейнер где хранится сырьё и куда будут складываться готовые изделия
q=1 ; Количество перемещаемого сырья из sunduk в pack
r='0x1BDD' ; Тип сырья
c='0x047C' ; Цвет сырья
tools='0x0F52' ; Тип инструмента
var promt, choice, promt1, choice1, promt2, choice2, promt3, choice3
promt='What do you' ; Название первого кравтового меню
choice='shaft' ; Первый выбор
promt1=' ' ; Название Второго кравтового меню
choice1=' ' ; Второй выбор
promt2=' ' ; Название Третого кравтового меню
choice2=' ' ; Третий выбор
promt3=' ' ; Название Четвёртого кравтового меню
choice3=' ' ; Четвёртый выбор
Sub automenu()
uo.cancelmenu()
if promt3<>' ' then
uo.automenu(promt3,choice3)
endif
if promt2<>' ' then
uo.automenu(promt2,choice2)
endif
if promt1<>' ' then
uo.automenu(promt1,choice1)
endif
uo.automenu(promt,choice)
end sub
sub main()
uo.useobject(pack)
wait(500)
CheckLag()
uo.useobject(sunduk)
wait(500)
CheckLag()
while not uo.dead()
if uo.Count(r,c)<1 then
mi(r,c,q,sunduk,pack)
CheckLag()
wait(500)
endif
if uo.hidden() then
craft()
else
hide()
endif
wait(200)
wend
end sub
Sub mi(item,color,q,box,box2)
uo.useobject(box)
CheckLag()
wait(500)
uo.findtype(item,color,box)
uo.moveitem('finditem',q,box2)
wait(400)
CheckLag()
end sub
sub cm()
uo.cancelmenu()
end sub
Sub craft()
cm()
AutoMenu()
while uo.Count(r,c) > 0
uo.waittargettype(r,c)
UO.usetype(tools);Попытка взять в руки инструмент
InJournal("You put the|failed.")
CheckLag()
wend
end sub
Sub Hide()
if not uo.dead() then
if not uo.hidden() then
uo.warmode(0)
uo.useskill("Hiding")
endif
InJournal("You have been revealed|You can't seem")
endif
end sub
Sub InJournal(t)
var timer=uo.timer()
DelTextInJournal(t)
while not uo.InJournal(t) && uo.timer()<timer+90
wait(200)
wend
end sub
Sub DelTextInJournal(msg) ; msg это параметр, см. выше как его передают
var nom=UO.InJournal(msg) ; ищем сообщение и в переменную его
if nom>0 then
UO.SetJournalLine(Nom - 1," ") ; подменим сообщение
DelTextInJournal(msg) ; вызов функцией самой себя, рекурсия
endif
end sub
Sub CheckLag()
DelTextInJournal("backpack") ; вытрим ТОЛЬКО нужные нам сообщения в журнале
UO.Click('backpack') ; одиночный клик по вашему backpack
InJournal("backpack") ; ждем сообщения в журнале
end sub
Некоторые функции взяты с форума. Не помню кто автор, сами отпишитесь.

P.S. Предлагайте свои идеи. По улучшению.