Скрипт на Tailoring, Нужна помощь
Лейтенант (4828229)11 лет
Trasher
Сообщений: 424
Рег. 10.06.2013
2 октября 2014 02:58
Сообщение #1
Короче, хз сколько часов я уже этот скрипт терзаю, хоть бери да вручную крафть!
Помогите найти проблему!
На Старт макроса пишет - Warning: menu "Cloth" opened. waiting. cancelled.
У меня мозг вскипел довести хотя бы до того что бы открыть Menu3, а тут такое...
Буду благодарен за ответ !


######################################################################################################
###########################################################################################
#############################################################################

sub Tailoring()
  Dim t_Resources[2]
    t_Resources[0] = '0x175D';??? ?????
    t_Resources[1] = '0x0F9D';??? ?????
  var t_SewingKit = '0x0F9D', t_Robe = '0x1f01', t_Bag = '0x0e76', t_Steaks = '0x0c77'
  var id_Container = '0x40B0977D', id_RecContainer = '0x40B0977D'
  var Delay = 10, Pause = 1000, ThreadsNeed = 1, ClothNeed = 20, ClothMove = 500, ThreadsMove = 50
  var msg = 'ou put|fail', Time, id_Bag, ResMove, i
  UO.UseObject(id_Container)
  UO.UseObject(id_RecContainer)
  While true
    If UO.Count(t_Resources[0]) >= ClothNeed and UO.Count(t_Resources[1]) >= ThreadsNeed then
      If UO.Targeting() then
        UO.CancelTarget()
      Endif
      DelJournal(msg)
      Time = UO.Timer()
      UO.WaitMenu('Cloth', 'Tops', 'Tops', 'Jesters Suit')
      UO.WaitTargetType(t_Resources[0])
      UO.UseType(t_SewingKit)
      Repeat
        Wait(100)
      Until UO.InJournal(msg) or Time + Delay * 10 <= UO.Timer()
     else
      While UO.Count(t_Robe)
        UO.FindType(t_Bag, -1, id_RecContainer)
        If UO.FindCount() then
          id_Bag = UO.GetSerial('finditem')
          UO.UseObject(id_Bag)
          Wait(100)
          UO.FindType(-1, -1, id_Bag)
          If UO.FindCount() < 255 then
            UO.FindType(t_Robe, -1, 'backpack')
            If UO.FindCount() then
              CheckLag()
              UO.MoveItem('finditem', -1, id_Bag)
              Wait(Pause)
             else
              UO.Print('?????????? ?????? 404 :?')
              Return
            Endif
           else
            UO.Ignore(id_Bag)
          Endif
         else
          UO.Print('????? ??? ??????????? ?????? ?????')
          Return
        Endif
      Wend
      UO.IgnoreReset()
      For i = 0 to 1
        UO.FindType(t_Resources[i], -1, id_Container)
        If UO.FindCount() then
          If i > 0 then
            ResMove = ThreadsMove
           else
            ResMove = ClothMove
          Endif
          CheckLag()
          UO.MoveItem('finditem', ResMove - UO.Count(t_Resources[i]), 'backpack')
          Wait(Pause)
         else
          UO.Print('? ' + id_Container + ' ?? ?????? ???? ?? ????????.')
          Return
        Endif
      Next
    Endif
    Eat(id_Container, t_Steaks, Pause)
  Wend
Endsub

Sub Eat(id, type, pause)
  var msg = 'simply|ou can|full', Time, Delay = 10
  DelJournal(msg)
  Time = UO.Timer()
  Repeat
    If UO.Count(type) then
      UO.UseType(type)
      Wait(100)
     else
      UO.FindType(type, -1, id)
      If UO.FindCount() then
        CheckLag()
        UO.MoveItem('finditem', 20, 'backpack')
        Wait(Pause)
       else
        UO.Print('??? ????')
        Return
      Endif
    Endif
  Until UO.InJournal(msg) or Time + Delay * 10 <= UO.Timer()
Endif

Sub DelJournal(msg)
  While UO.InJournal(msg)
    UO.SetJournalLine(UO.InJournal(msg) - 1, '')
  Wend
Endsub

Sub CheckLag()
  DelJournal('ackpack')
  UO.Click('backpack')
  Repeat
    Wait(50)
  Until UO.InJournal('ackpack')
Endsub
Маршал (73319389)14 летИнквизитор
Inquisitor
Сообщений: 1693
Рег. 19.06.2010
2 октября 2014 11:05
Сообщение #2
Цитата: scyko
UO.WaitMenu('Cloth', 'Tops', 'Tops', 'Jesters Suit')

Замени на:
UO.WaitMenu("Cloth", "Tops", "Tops", "Jester's Suit")
10 лет
Ranger
Сообщений: 6
Рег. 19.08.2014
2 октября 2014 11:22
Сообщение #3
Может тоже подскажите, товарищи? Не могу понять, почему он не идет по менюшке itemов.

sub tailoring_scroll()
    var bag1 = '0x406810D1'; id my backpack
    var cutleather   = '0x1067'
    var sewingkit   = '0x0F9D'
repeat
    uo.findtype( cutleather, '-1', bag1 )
    if uo.findcount() < 1 then
    uo.exec('terminate tailoring_scroll')
endif
    if uo.count(cutleather)<5 then
    uo.Grab(5,'finditem', 'backpack')
wait(300)
endif
wait(300)
    uo.usetype(sewingkit)
    uo.waittargettype(cutleather)
    uo.waitmenu('Miscellaneous','Blank Scroll')
    uo.deletejournal()
repeat
wait(300)
    until uo.injournal('You put') or uo.injournal('fail') or uo.injournal('target')
    until uo.dead()
end sub


По аналогии делал "Belt Pouch" крафтил ОКей! Если добавить 'Leather', "uo.waitmenu('Leather','Miscellaneous','Blank Scroll')" тоже не робит. Меню вызывает и стоит:(
Лейтенант (4548828)11 лет
Dragonstalker
Сообщений: 3319
Рег. 19.11.2013
2 октября 2014 11:24
Сообщение #4
в конце можно цифирку в скобках поставить с номером нужного предмета. Удобно чтобы каждый день не заморачиваться переписыванием названия.
UO.WaitMenu("Cloth", "Tops", "Tops", "(4)"
Лейтенант (4399181)10 лет
Vampire
Сообщений: 137
Рег. 5.09.2014
2 октября 2014 12:26
Сообщение #5
поменяй местами строчки


1. uo.waitmenu('Miscellaneous','Blank Scroll') ; эту строку можно вобше вынести за пределы циклов в самый вверх. потому что достаточно одно раза вызвать меню
2. uo.waittargettype(cutleather) ; инжект работает так что сначала вызывает ловушку ( таргет ) затем действие.
3. uo.usetype(sewingkit) ; а вот и действие

и всё заработает

а ну если первую строку двинешь к переменным добавь еще туда же uo.cancelmenu ()

не за что
Лейтенант (4548828)11 лет
Dragonstalker
Сообщений: 3319
Рег. 19.11.2013
2 октября 2014 13:35
Сообщение #6
ловушка на меню данного типа одноразовая. Её ни в коем случае нельзя вытаскивать за пределы цикла. Если бы автоменю было то можно. Но с ним геморойно потому что надо обязательно сбрасывать.
Лейтенант (4399181)10 лет
Vampire
Сообщений: 137
Рег. 5.09.2014
2 октября 2014 14:54
Сообщение #7
действительно не досмотрел функцию) чойт подумалость как автоменю)
эх исправить пост незя уже. ну да лана ремарку прочтет поймет.
Лейтенант (4828229)11 лет
Trasher
Сообщений: 424
Рег. 10.06.2013
2 октября 2014 16:20
Сообщение #8
Zombie,
Mirage,

Спасибо ребята :friends:
10 лет
Ranger
Сообщений: 6
Рег. 19.08.2014
3 октября 2014 10:22
Сообщение #9
JCorpain, Спасибо! Буду пробовать сегодня:)
10 лет
Trasher
Сообщений: 49
Рег. 14.09.2014
6 октября 2014 04:20
Сообщение #10
Mirage,
JCorpain,
Спасибо за разъяснения.
Последние посетители (0):

 
Сейчас: 25 ноября 2024 08:09