Uni Craft

Ask for help

Moderators: Murderator+, Murderator

Post Reply
ADEPT_ABP
Posts: 223
Joined: 2006-05-12 08:03:45
Contact:

Uni Craft

Post by ADEPT_ABP »

Хочу сделать скрипт для всех крафтовых скиллов. Вопрос, были ли такие попытки(искал в форуме - не нашёл). Кто-нибудь писал подобное для себя? Какие "подводные камни" меня могут остановить(про лень можете не говорить - в курсе :mrgreen:)?

Предварительный набросок\шаблон:

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


Некоторые функции взяты с форума. Не помню кто автор, сами отпишитесь. :D

P.S. Предлагайте свои идеи. По улучшению.
Last edited by ADEPT_ABP on 2009-01-25 14:39:10, edited 2 times in total.
Играю на drw.ru
Использую инжект 505.18 VeNd0r
Начинающий скриптер.
Savage
Expert!
Posts: 1205
Joined: 2004-04-04 11:13:54
Location: Балаково, Саратовская обл.
Contact:

Post by Savage »

А собственно зачем?
ADEPT_ABP
Posts: 223
Joined: 2006-05-12 08:03:45
Contact:

Post by ADEPT_ABP »

А чтобы было. Чем не вариант? :)
Играю на drw.ru
Использую инжект 505.18 VeNd0r
Начинающий скриптер.
Savage
Expert!
Posts: 1205
Joined: 2004-04-04 11:13:54
Location: Балаково, Саратовская обл.
Contact:

Post by Savage »

Ну дерзай. А что нужно крафтать как определять будешь?
Successful
Posts: 174
Joined: 2008-12-13 00:00:15

Post by Successful »

Code: Select all

########################################################## 
###   Universal Craft / Универсальный Крафт v1.2 Beta  ###
##########################################################
### Внимание:
### Для  работы скрипта нужна версия YokoInjection 4DZ.
### Скачать dll этой версии можно                     
### от сюда: www.swines.nm.ru/injection.zip     
##########################################################
############################
### Описание и настройка ###
############################
### Для правильной работы скрипта нужно:
### 1.Поставить галочку в пункет Verbose Menu, в закладке Main.
### 2.Поменять переменные, приведеные инжекте.                   
### 3.Поменять функцию Craft.                               
###
### Universal Craft работает с: Blacksmitchy, Alchemy, Tailoring, Carpentry, Tinkering, Inscription.
### Все ресурсы, пустые мешки и т.д. берет из одного ящика.
### Защита от бага с физлами, когда ни с того, ни с сего подряд идут только физлы.
### Работает с любой сделанной продукцией, которую нельзя складывать в кучки: даггеры, ожерелья, палки, катаны, удочки и т.д.
### Берёт пусте мешочки, закидывает в другой контейнер и набивает до предела(255 вещей).
### Потом опять берёт пустой мешочек.
### Возможность "регулировать" частоту юзания дополнительного скилла(к примеру Spirit Speak, или же Arms Lore, все что вы пожелаете).
### Отлаженный алгоритм не смогут сбить лаги, WorldSave'ы или же FastLoot(UNSP, здесь я применил уникальное решение, которое ни разу не видел на форуме).
### Скрипт в большинстве случаев ждет событий, а не просто какое-то время(wait(...)), из-за этого увеличивается его надежность.
### Единственный минус скрипта: работает только для прокачки Alchemy и Inscription, так как когда у вас будут эти скиллы ГМы, вся продукция будет лежать в одной куче, а не в разных.
###                       
##################
### Переменные ###
##################
ух ты!
#####################
### Функция Craft ###
#####################
вай!
ADEPT_ABP
Posts: 223
Joined: 2006-05-12 08:03:45
Contact:

Post by ADEPT_ABP »

Я же в поиске вбивал Uni + Craft!!? Как так? :?
Играю на drw.ru
Использую инжект 505.18 VeNd0r
Начинающий скриптер.
Successful
Posts: 174
Joined: 2008-12-13 00:00:15

Post by Successful »

это не с еко :)
ADEPT_ABP
Posts: 223
Joined: 2006-05-12 08:03:45
Contact:

Post by ADEPT_ABP »

Фух... Камень с души упал, да прямо на ноги. Тогда буду мучать скрипт, а не форум. :)
Играю на drw.ru
Использую инжект 505.18 VeNd0r
Начинающий скриптер.
Post Reply