Хочу сделать скрипт для всех крафтовых скиллов. Вопрос, были ли такие попытки(искал в форуме - не нашёл). Кто-нибудь писал подобное для себя? Какие "подводные камни" меня могут остановить(про лень можете не говорить - в курсе )?
Предварительный набросок\шаблон:
Code: ############################################################### ### 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. Предлагайте свои идеи. По улучшению.
|