Page 1 of 1

помогите пожалуйсто с боукрафтом

Posted: 2009-01-18 08:47:47
by ychenik
прочитал все существующие топики, попробовал все скрипты в том числе из раздела top quality и скрипты ердреда, во всех возникает проблема с меню, может быть у кого то есть рабочий скрипт? желательно чтобы брал из сундука никтки и логи и вырезал лук, лук кидал в мусорку. заранее спс.

Posted: 2009-01-18 10:38:07
by ADEPT_ABP
А меню сравнивал? Вдруг отличается? И уточняй на каком шарде играешь.

Posted: 2009-01-18 14:41:35
by ychenik
шард оском, да вроде сравнивал, все типы: меню, логов, ножика, шафтов совпадают, но происходит так, что вылазит меню крафта, а дальше скрипт просто простаивает, не крафтит даже один раз.

Posted: 2009-01-18 15:06:37
by ychenik
вот переделал несколько скриптов и сделал, то что мне наиболее подходит

Code: Select all

##################################################################### 
; 
; Чар берет из сундука логи, крафтит луки
; и кидает их в трэш. 
; Если логи закончились - выход. 
; 
sub bow()
   VAR Musor = '0x4047ccfb'
   VAR Sunduk = '0x40606126'       ; Сериал сундука 
   VAR Logi = '0x1BDD'          ; Тип логов
   VAR Instrum = '0x0F51'          ; Тип ножика 
   VAR Bow = '0x13B1'          ; Тип лука
   VAR Kolvo = 200          ; Брать логов
   VAR k = 0 
   While TRUE 
      UO.FindType( Logi, -1, Sunduk )   ; Ищем логи в сундуке 
      If UO.FindCount() == 0 Then 
         UO.Print("Logs not found, script terminated") 
         return 
      Endif 
      UO.Grab( Str( Kolvo ), 'finditem' ) 
      wait( 2000 ) 
      While UO.Count( Logi ) > 0 
         ; Пока в паке есть логи
         UO.Print('Ostalos ' + Str( UO.Count( Logi ) ) + ' logs' ) 
         UO.DeleteJournal() 
         uo.automenu('Bowcraft','Exceptional Bows') 
uo.automenu('Exceptional Bows','Superior Bow') 
 
         UO.UseType( Instrum ) 
         k = 0 
         while NOT UO.InJournal('You put') AND NOT UO.InJournal('fail') AND ( k < 30 ) 
            k = k + 1 
            wait(500) 
         wend 
         if UO.Count( Bow ) > 0 then 
            UO.FindType( Bow, -1, -1 ) 
            UO.MoveItem( 'finditem', 0, Musor ) 
            wait( 1000 ) 
            UO.Print( 'Bow moved' ) 
         end if 
      Wend 
   Wend 
end sub 
но опять таки проблема с меню, не знаю как правильно написать, уже че токо не пробывал.
вот как должно быть тыкает на логи появляется меню What do you want to carve ---> Exeptional Bows---->Superior Bow подскажите пжалсто :)

Posted: 2009-01-18 21:20:59
by ADEPT_ABP
Для начала выясни, корректно ли работает меню:

Code: Select all

sub main()
uo.cm()
uo.automenu('Exeptional Bows','Superior Bow')
uo.automenu('What do you want to carve','Exeptional Bows')
end sub

sub cm()                  ; очистка автоменю
uo.cancelmenu()
end sub
Запусти и ткни на логи, пилу или чем ты там мастеришь. Если не работает попробуй это.

Code: Select all

sub main()
var log=''
uo.waitmenu('What do you want to carve','Exeptional Bows','Exeptional Bows','Superior Bow')
uo.usetype(log)
end sub
Отпиши как это у тебя работает.

Posted: 2009-01-18 21:45:54
by Successful
ADEPT_ABP wrote:

Code: Select all

uo.automenu('Exeptional Bows','Superior Bow')
uo.automenu('What do you want to carve','Exeptional Bows')

Code: Select all

uo.automenu('What do you want to carve','Exeptional Bows')
uo.automenu('Exeptional Bows','Superior Bow')
и здесь может быть еще так:

Code: Select all

'Superior bow (8 log)')
вроде 8 :roll:

Posted: 2009-01-18 23:19:39
by ychenik
В первом варианте пишет что uo.cm не найдено и выдает ошибку, а во втором пишет you cant think of a way to use this item.

Posted: 2009-01-18 23:31:36
by Millerbeer

Code: Select all

##################################################################### 
; 
; Чар берет из сундука логи, крафтит луки 
; и кидает их в трэш. 
; Если логи закончились - выход. 
; 
sub bow() 
   VAR Musor = '0x4047ccfb' 
   VAR Sunduk = '0x40606126'       ; Сериал сундука 
   VAR Logi = '0x1BDD'          ; Тип логов 
   VAR Instrum = '0x0F51'          ; Тип ножика 
   VAR Bow = '0x13B1'          ; Тип лука 
   VAR Kolvo = 200          ; Брать логов 
   VAR k = 0 
   While TRUE 
      if not uo.count('0x0FA0') then
          uo.findtype('0x0FA0','0x0000',Sunduk)
                 if uo.findcount() then
                       uo.moveitem('finditem','200','backpack')
                       wait(1000)
                  else
                       uo.print('Нитки закончились')
                        return
                  endif
      endif
      if not uo.count(Logi) then
      UO.FindType( Logi, -1, Sunduk )   ; Ищем логи в сундуке 
      If UO.FindCount() == 0 Then 
         UO.Print("Logs not found, script terminated") 
         return 
      Endif 
      UO.Grab( Str( Kolvo ), 'finditem' ) 
      wait( 2000 ) 
      endif
      While UO.Count( Logi ) >10 and uo.count('0x0FA0')
         ; Пока в паке есть логи 
         UO.Print('Ostalos ' + Str( UO.Count( Logi ) ) + ' logs' ) 
         UO.DeleteJournal() 
         uo.waitmenu('What do','Exceptional Bows','Exceptional Bows','Superior Bow') 
         uo.waittargettype(Logi)
         UO.UseType( Instrum ) 
         repeat
            wait(500) 
         until UO.InJournal('You put|fail') 
         if UO.Count( Bow ) > 0 then 
            UO.FindType( Bow, -1, -1 ) 
            UO.MoveItem( 'finditem', 0, Musor ) 
            wait( 1000 ) 
            UO.Print( 'Bow moved' ) 
         end if 
      Wend 
   Wend 
end sub 

Posted: 2009-01-18 23:38:40
by ychenik
опять таки какая-то проблема с меню, появляется первое меню что вырезать и все, скрипт встает на одном месте, он не заходит в раздел эксепшонал луков и не выбирает супериор лук.

Posted: 2009-01-18 23:51:06
by Millerbeer
Чуть подправил,попробуй, ваще, проблема, я так понял, в менюшках, точно перепиши все названия, которые там появляются, с самого начала, кликнул на кинжал 2 раза, указал на логи, вылазиит меню крафта, чего там сверху написано, и остальные названия тож в студию

Posted: 2009-01-18 23:55:17
by Millerbeer
И от сервака что приходит в случае удачного крафта и в случае неудачи тож напиши

Posted: 2009-01-19 00:08:41
by ychenik
дабл клик на дагер слева внизу пишет What do you want to use this on?
тыкаю на логи - вылазит менюшка What do you want to carve the wo
далее следует раздел Exceptional Bows в нем Superior Bow
при удачном крафте пишет You put the Superior Bow in your pack.
При физле пишет You fail to create the item
сообщения вроде стандартные, менюшка тоже в чем загвоздка не пойму.

Posted: 2009-01-19 00:11:34
by Millerbeer
Если ты всё правильно написал, то в команде лишняя строчка Bowcraft, сча её уберу и попробуй

Posted: 2009-01-19 00:20:43
by ychenik
пасиб, все офигенно) теперь еще один вопрос, мне для изготовления лука кроме логов нужны нитки, чет вот пробую сейчас вписать чтобы брал еще и нитки и видимо не очень удачно это делаю. я просто продублировал строчку с добором логов изменив ее на нитки, поулчился бред. как это получше сделать? тип ниток 0x0FA0.

Posted: 2009-01-19 00:23:40
by Millerbeer
а сколько ниток идёт на лук? одна?

Posted: 2009-01-19 00:28:03
by ychenik
да одна.

Posted: 2009-01-19 15:18:14
by ychenik
спасибо, все работает.

Posted: 2009-01-20 12:13:05
by ADEPT_ABP
ychenik wrote:В первом варианте пишет что uo.cm не найдено и выдает ошибку, а во втором пишет you cant think of a way to use this item.
Вообще-то, uo.cm быть не должно, а вот uo.cm() это - uo.cancelmenu(), сделанное отдельной функцией, чтобы можно было её запустить отдельно. Так как если запустить скрипт такого вида:

Code: Select all

sub main()
uo.automenu('Exeptional Bows','Superior Bow')
uo.automenu('What do you want to carve','Exeptional Bows')
end sub
а потом ещё раз, то как раз и будет ситуация, с вылезанием крафтовой менюхи и ничегонеделанием. :)