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


а потом ещё раз, то как раз и будет ситуация, с вылезанием крафтовой менюхи и ничегонеделанием. :)