Page 1 of 1

Помогите

Posted: 2005-03-20 09:04:30
by Adec[DrW]
Люди помогите со скриптом на Бофкрафт. Он не работает.

Code: Select all

 ##################################################################### 
; Bowcraft. v.1.03b (c) Edred
;
; Чар берет из сундука логи, крафтит из них шафты
; и складывает эти шафты в этот же сундук.
; Если логи закончились - выход.
; Если даггер (или что вы там используете) сломался -
; скрипт найдет аналогичный по типу в бэкпаке и возьмет
; в руки.
;
; 1.03b: Проверка, если Kolvo = 1, то берем три и кладем обратно два
;        лога.
;
sub bowcraft()
   VAR Sunduk = '0x4042B1A1'       ; Сериал сундука
   VAR Logi = '0x1BDD'          ; Тип логов
   VAR Shafts = '0x1BD4'          ; Тип шафтов
   VAR Kolvo = 10               ; Брать логов для одного крафта
   VAR k = 0, j, dagger
   dagger = UO.ObjAtLayer( 'Rhand' )
   UO.SetGlobal( 'instrtype', UO.GetGraphic( dagger ) )
   While TRUE
      UO.FindType( Logi, -1, Sunduk )   ; Ищем логи в сундуке
      If UO.FindCount() == 0 Then
         UO.Print("Logs not found, script terminated")
         return
      else
         j = UO.GetQuantity( 'finditem' )
         If j > Kolvo Then
            UO.Print( 'I can use ' + str( j ) + ' logs' )
         else
            UO.Print( "I can't use " + str( j ) + " logs" )
            return
         Endif
      Endif
      If Kolvo == 1 Then
         ; v. 1.03
         UO.Grab( '3', 'finditem' )
         wait(500)
         UO.FindType( Logi )
         UO.MoveItem( 'finditem', '2', Sunduk )
         wait(500)
      Else
         UO.Grab( Str( Kolvo ), 'finditem' )
         wait(500)
      Endif
      ; А это - динамическая пауза на мув
      while UO.Count( Logi ) < Kolvo
         wait(100)
      wend
      ; проверка на то, что в руках по-прежнему даггер
      If CheckInstr() == 0 Then
         UO.Print("You don't have daggers!" )
         return
      Endif
      UO.DeleteJournal()
      UO.CancelMenu()
      UO.WaitMenu ('What do you want to carve', 'shaft' )
      UO.WaitTargetType( Logi )
      UO.UseObject( dagger )
      k = 0
      while NOT UO.InJournal('You put') AND NOT UO.InJournal('fail') AND ( k < 50 )
         k = k + 1
         wait(300)
      wend
      If UO.Count( Shafts ) > 0 then
         UO.FindType( Shafts, -1, -1 )
         UO.MoveItem( 'finditem', 0, Sunduk )
         wait(500)
         while UO.Count( Shafts ) > 0
            wait(100)
         wend
         UO.Print( 'Shafts moved' )
      Endif
   Wend
end sub

Sub CheckInstr()
   ; проверим, есть ли в правой руке инструмент того же
   ; типа, что и в глобальной переменной instrtype
   ; если нет - найдем в бэкпаке такой инструмент и
   ; возьмем в правую руку.
   VAR typ = UO.GetGlobal( 'instrtype' )
   VAR cur = UO.GetGraphic( UO.ObjAtLayer( 'Rhand' ) )
   If typ == cur Then
      return 1
   Endif
   UO.FindType( typ )
   If UO.FindCount() == 0 Then
      return 0
   Endif
   UO.Equip( 'RHand' , 'finditem' )
   wait(1000)
   return 1
endsub

Posted: 2005-03-20 12:39:13
by CErebrus
напиши что хоть пишет!

Posted: 2005-03-20 13:16:09
by Sfagnum
CErebrus wrote:напиши что хоть пишет!
хочешь напишу тебе его ответ?
- ничего не пишет - просто запускается, делает что то и тупит или просто тупит.

ЗЫ это не поклёп на Edred'а, я просто показал как люди обычно описывают свои проблемы ;)

Posted: 2005-03-21 01:44:28
by Goggy
Sfagnum wrote:
CErebrus wrote:напиши что хоть пишет!
хочешь напишу тебе его ответ?
- ничего не пишет - просто запускается, делает что то и тупит или просто тупит.

ЗЫ это не поклёп на Edred'а, я просто показал как люди обычно описывают свои проблемы ;)


млин, сто пудово, мя такие задрали в аське :evil: :?

Posted: 2005-03-21 02:31:25
by Sfagnum
Goggy wrote:млин, сто пудово, мя такие задрали в аське :evil: :?
а я в инвиз ушёл :)
причём в постоянку...а для непонятливых игнор лист есть ;)

Posted: 2005-03-21 03:18:51
by Goggy
хех, эт ясно... у мя в игноре щас 65 чел :twisted:

Posted: 2005-03-21 11:16:22
by Adec[DrW]
Все работает, просто кое что переписать надо было.Он после физла сбиваля. Вот чуть переделал и все работает

Posted: 2005-03-21 12:14:34
by Sfagnum
типа

Code: Select all

if UO.InJournal('fail') then
wait(300)
end if
или просто кто то рядом юзал к примеру алхимию ;)

Posted: 2005-03-21 14:12:24
by Askaneli
Goggy wrote:
Sfagnum wrote:
CErebrus wrote:напиши что хоть пишет!
хочешь напишу тебе его ответ?
- ничего не пишет - просто запускается, делает что то и тупит или просто тупит.

ЗЫ это не поклёп на Edred'а, я просто показал как люди обычно описывают свои проблемы ;)


млин, сто пудово, мя такие задрали в аське :evil: :?

Ответ: 20 WMZ, сразу как-то народ отсеивает.