помогите подправить скрипт

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
Chyz
Posts: 5
Joined: 2005-02-04 17:19:49
Contact:

помогите подправить скрипт

Post by Chyz »

Code: Select all

; Рыбачим с корабля. Выловленное перерабатываем и складываем в трюм. 
; Если вокруг все выловлено - плывем вперед. Считаем итемы (раздельные)
; в трюме. Если их больше 250 - останавливаем скрипт.
;
; ver. 1.04b (c) Edred
;
VAR Trum = '0x400C230D'      ; трюм корабля
VAR Pole = '0x0DBF'         ; удочка
VAR Fork = '0x1404'         ; оружие
VAR Shield = '0x1B76'      ; щит


sub Fishing()
   UO.Exec( 'exec Trevoga' )
   If UO.GetGraphic( UO.ObjAtLayer( 'Lhand' ) ) == Shield Then
      UO.UnEquip( 'Lhand' )
      wait( 500 )
   Endif
   If UO.GetGraphic( UO.ObjAtLayer( 'Rhand' ) ) == Fork Then
      UO.UnEquip( 'Rhand' )
      wait( 500 )
   Endif
   If UO.GetGraphic( UO.ObjAtLayer( 'Lhand' ) ) <> Pole Then
      UO.UseType( Pole )
   Endif
   UO.WarMode( 0 )
   While TRUE
      FishForward()
      If UO.Dead() Then
         ; ждем
         return
      Endif
      If CountTrum() > 250 Then
         return
      Endif
   Wend
endsub

sub FishForward()
   VAR x, y
   repeat
      For y = -4 To 4
         For x = -4 To 4
            UO.Print( 'TEST: ' + str( x ) + ', ' + str( y ) + ' coord' )
            FishTile( x, y )
            If UO.Dead() Then
               return
            Endif
            Next
      Next
      ; пока смена дислокации по-тупому
      UO.Print( 'TEST: forward' )
      UO.SayU( 'forward' )
      wait( 4000 )
      UO.SayU( 'stop' )
   until UO.Dead()
endsub

sub FishTile( x, y )
   VAR Ms1 = "You can't fish under the ship"   ; не можем ловить здесь
   VAR Ms2 = "You are too far away"      ; далеко
   VAR Ms3 = "There are no fish here"      ; кончилось тут
   VAR Ms4 = "You fish a while, but fail to catch anything"   ; физл
   VAR Ms5 = "You pull out"         ; поймал что-то
   ; VAR Ms6 = " "         ; treasure map level 1 - 5
   ; VAR Ms7 = " "         ; water elemental
   ; VAR Ms8 = " "         ; rare water shell
   ; VAR Ms9 = " "         ; сундук с разбитого корабля
   ; VAR Ms10 = " "      ; морской монстр
   VAR k, t
   VAR MaxTime = 300
   If (x > -3) AND (x < 3) AND (y > -3) AND (y < 3) Then
      ; это, похоже, считается под лодкой
      return
   Endif
   k = 0
   repeat
      If UO.Dead() Then
         return
      Endif
      UO.DeleteJournal()
      t = UO.Timer()
      UO.WaitTargetTile( '0', STR( UO.GetX() + x ), STR( UO.GetY() + y ), '251')
      UO.UseObject( UO.GetSerial( UO.ObjAtLayer( 'Lhand' ) ) )
      repeat
         wait(300)
      until UO.InJournal(ms1) OR UO.InJournal(ms2) OR UO.InJournal(ms3) OR UO.InJournal(ms4) OR UO.InJournal(ms5) OR ((t + MaxTime) < UO.Timer())
      If UO.InJournal(ms4) Then
         k = k + 1
      Endif
      If UO.Dead() Then
         return
      Endif
      If UO.InJournal( ms5 ) Then
         Recycle()
         If CountTrum() > 250 Then
            return
         Endif
      Endif
   until UO.InJournal(ms1) OR UO.InJournal(ms2) OR UO.InJournal(ms3) OR (k > 9)
endsub

sub CountTrum()
   ; Считаем кол-во любых итемов (или кучек) в трюме
   ; и возвращаем результат
   UO.FindType( -1, -1, Trum )
   return UO.FindCount()
endsub

sub Recycle()
   ; ------- улов -------
   DIM Fish[17]
   Fish[0]  = '0x170B'   ; сапоги
   Fish[1]  = '0x170F'   ; тапки
   Fish[2]  = '0x170D'   ; сандалии
   Fish[3]  = '0x1711'   ; сапоги
   Fish[4]  = '0x09CC'   ; тип рыбы 1
   Fish[5]  = '0x09CD'   ; тип рыбы 2
   Fish[6]  = '0x09CE'   ; тип рыбы 3
   Fish[7]  = '0x09CF'   ; тип рыбы 4
   Fish[8]  = '0x0FC4'   ; ракушка, тип 1
   Fish[9]  = '0x0FC5'   ; ракушка, тип 2
   Fish[10] = '0x0FC6'   ; ракушка, тип 3
   Fish[11] = '0x0FC7'   ; ракушка, тип 4
   Fish[12] = '0x0FC8'   ; ракушка, тип 5
   Fish[13] = '0x0FC9'   ; ракушка, тип 6
   Fish[14] = '0x0FCA'   ; ракушка, тип 7
   Fish[15] = '0x0FCB'   ; ракушка, тип 8
   Fish[16] = '0x0FCC'   ; ракушка, тип 9
   VAR Razmer = 16      ; размер массива - 1
   ; ------- инструмент -------
   VAR Scissor = '0x0F9E'   ; тип ножниц
   VAR Cleaver = '0x0EC2'   ; кливер
   ; ------- конечный продукт -------
   VAR Bandag = '0x0E21'   ; тип бинтов
   VAR Pearl = '0x0F7A'   ; жемчуг
   VAR Steak = '0x097A'   ; рыбное филе

   VAR i
   ; Ищем что у нас валяется под ногами, если надо перерабатываем
   ; и складируем в трюм. Потом введем всякие мешочки разные и ящички.
   For i=0 To Razmer
      UO.FindType( Fish[i], -1, 'ground' )
      If UO.FindCount() > 0 Then
         UO.Grab( 0, 'finditem' )
         Wait( 1500 )
         ; Взяли в пак. Теперь разберемся что это
         If i < 4 Then
            ; сапоги и тапки
            ; режем ножницами на бинты и скидываем бинты
            UO.WaitTargetObject( 'finditem' )
            UO.UseType( Scissor )
            Wait( 3000 )
            ; Скинем бинты в трюм
            UO.FindType( Bandag )
            If UO.FindCount() > 0 Then
               UO.MoveItem( 'finditem', '0' , Trum )
               wait( 2000 )
            Endif
         Endif
         If i > 3 AND i < 8 Then
            ; рыба
            ; режем кливером в филе и сбрасываем филе
            ; кливер берется в руки, поэтому потом
            ; снова берем удочку
            UO.WaitTargetObject( 'finditem' )
            UO.UseType( Cleaver )
            Wait( 3000 )
            UO.FindType( Steak )
            If UO.FindCount() > 0 Then
               UO.MoveItem( 'finditem', '0' , Trum )
               wait( 2000 )
            Endif
            UO.UseType( Pole )         
         Endif
         If i > 7 Then
            ; ракушки
            ; дабл клик на них, если появился жемчуг
            ; сбросим его, если ракушка не исчезла
            ; значит рар - сбросим ее
            UO.UseType( 'finditem' )
            wait( 1000 )
            If NOT UO.InJournal( 'This shell is empty' ) Then
;               UO.FindType( Pearl )
;               If UO.FindCount() > 0 Then
;                  UO.MoveItem( 'finditem', '0' , Trum )
;                  wait( 2000 )
;               Else
                  UO.MoveItem( 'finditem', '0' , Trum )
                  wait( 2000 )
;               Endif
            Endif
         Endif
      Endif
   Next
endsub

; ----------------------------
; blank scroll - 0x0E34
; ginseng - 0x0F85
; gold coin - 0x0EED
; nightshade - 0x0F88
; blood moss - 0x0F7B
; mandrake root - 0x0F86

#===================================================================#
#               Процедура контроля за приходом элема                #
#===================================================================#
;
sub Trevoga()
   repeat
      Wait(100)
   until UO.Life < 150
   UO.Exec( 'terminate Fishing' )
   UO.UnEquip( 'Lhand' )
   wait( 500 )
   UO.UseType( Fork )
   wait( 500 )
   UO.UseType( Shield )
   wait( 500 )
   UO.WarMode( 1 )   
endsub

На себя армор, в пак или в руки (скрипт сам разберется) вилку и щит, их типы прописать в начало скрипта. В пак кливер и ножницы. На корабль. Отплыть подальше. В пак, естественно, удочку (хотя можно и в руки, непринципиально). Прописать в скрипт сериал трюма.
скрипт рабочий, но, на шарде Citadel можно ловить только с трапов и таргет только в воду, не могли бы помочь исправить чтобы он только ловил с одоной стороны коробля и чтобы можно было указать просто ящик стоявший рядом, а остальные функции остались какие есть....
Помогите очень прошу...
Chyz
Posts: 5
Joined: 2005-02-04 17:19:49
Contact:

Post by Chyz »

Ну помогите кто нидь плиз....
Chyz
Posts: 5
Joined: 2005-02-04 17:19:49
Contact:

Post by Chyz »

Ну не ужели вообще не кто не поможет???? :?: :?:
flake
Expert!
Posts: 746
Joined: 2004-08-11 23:56:17
Location: The Citadel
Contact:

Post by flake »

Салют парень ;)

Я замечательно использовал раньше этот скрипт.
И на нашем шарде можно вставать на самый нос корабля, и оттуда рыбачить.
Пробовал?
Chyz
Posts: 5
Joined: 2005-02-04 17:19:49
Contact:

Post by Chyz »

Но он же облавливает вокруг коробля.. а с носа ты кокруг не обловишь
Chyz
Posts: 5
Joined: 2005-02-04 17:19:49
Contact:

Post by Chyz »

Ну что не кто не может помочь чтоли?? :| :|
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

зачем? Я тебе и так уже более свежую версию положил... :)
Post Reply