Перейти к содержанию
Форум шарда Middle-Earth
Авторизация  
Гость MEdition

Fishing [Injection]

Рекомендуемые сообщения

Гость MEdition

Работает везде. Удочку в руки - Ловим рыбку.

 

##################### MIDDLE-EARTH.RU ##########################
Sub FishTile(t, x, y, z)
  var timer

  repeat
    uo.WaitTargetTile(Str(t), Str(x), Str(y), Str(z))
    uo.UseType(0x0DBF) #Удочка

    uo.DeleteJournal()
    timer = 0
    repeat
      wait(1000)
      timer = timer + 1
    until uo.InJournal("Points") or uo.InJournal("here") or uo.InJournal("line") or uo.InJournal("broken") or timer > 120
        

  until uo.InJournal("here") or uo.InJournal("line")
end sub

sub Fishing()
  var i, j, tile
  
  uo.Disarm()

  while not uo.dead()
    for i = -6 to 6
      for j = -6 to 6
        tile = 168
        while (not uo.PrivateGetTile(uo.GetX() + i, uo.GetY() + j, 251, tile, tile)) and (tile < 6045)
          if tile == 171 then
            tile = 310
          else
            if tile == 311 then
              tile = 6039
            else
              tile = tile + 1
            endif
          endif
        wend
      
        if tile < 6039 then
          tile = 0
        endif

        if tile < 6045 then
          uo.concolor(0x53)
          uo.Print("Fishing: " + Str((i + 6) * 13 + j + 7) + "/169...")
          uo.concolor(0)
          
          FishTile(tile, uo.GetX() + i, uo.GetY() + j, 251)
        endif
      next
    next
    
    uo.Print("Завершил круг. Продолжаю.")
  wend
end sub
##################### MIDDLE-EARTH.RU ##########################

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость MEdition

Режем наловленные ботинки на кожу.

 

##################### MIDDLE-EARTH.RU ##########################
sub Boots()
DIM Boot[9] 
;режет обувку на кожу
   Boot[0]  = 0x170A    
   Boot[1]  = 0x170B   
   Boot[2]  = 0x170C    
   Boot[3]  = 0x170D    
   Boot[4]  = 0x170E    
   Boot[5]  = 0x170F     
   Boot[6]  = 0x1710   
   Boot[7]  = 0x1711  
   Boot[8]  = 0x0DC8 #сеть
   VAR i 

   For i = 0 To 8

      UO.FindType( Boot[i], '-1', 'backpack') 
      if UO.FindCount() > 0 Then

            UO.WaitTargetobject( 'finditem' ) 
            UO.UseType(0x0F9E) #ножницы
            repeat
            wait(3500)
     End if
    next
Boots()
end sub
##################### MIDDLE-EARTH.RU ##########################

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2MEdition

Иногда он видимо тыкает удочкой не туда, выскакивает That is too far away и на этом скрипт тупит, его не крашит, не закрывает, он просто перестаёт что либо делать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Чуть доработал скрипт.

Что добавил:

  • Проверка на наличие удочек в бекпаке, если удочек не сталось, закрываем клиент.
  • Авто-кормёжка + проверка на наличие еды, если еды не осталось, закрываем клиент.
  • Дроп пойманной обуви себе под ноги.
  • Удаление пойманных сос-бутылок, карт и старых рыбацких сетей.

 

В бекпаке ВСЕГДА иметь:

  • Trash бочку.
  • Еду.
  • Удочки.

 

При старте, скрипт попросит вас указать Trash бочку.

 

 

По поводу самого скрипта на ловлю:

Чар начинает ловить с правого верхнего угла, потом плавно переходит ближе к чару. Поэтому приходиться ставить рыбака в верхний угол лодки...

Что-бы можно было поставить второго чара, на нижний угол, надо в скрипте, в строке

FishTile(tile, uo.GetX() + i, uo.GetY() + j, 251)

перед i поменять + на -, тогда всё заработает как надо.

 

 

 

var food='0x097B'    # Тип еды                                                                               
                    #'0x097B' - жаренная рыба                                
                    #'0x09F2' - жаренное мясо                                
                    #'0x171F' - бананы  
    

Sub check()
    var q
    dim bot[7]
        bot[0] = '0x170D'
        bot[1] = '0x170E'
        bot[2] = '0x170C'
        bot[3] = '0x170B'
        bot[4] = '0x170F'
        bot[5] = '0x1710'
        bot[6] = '0x1711'
    for q=0 to 6
        while uo.Count(bot[q]) > 0
            uo.findtype(bot[q])
            if uo.FindCount() > 0 then
                uo.exec("moveitem 'finditem' '1' 'ground'")
                wait(300)
            endif
        wend
    next
    dim shlak[3]
        shlak[0] = '0x14ED'
        shlak[1] = '0x0DC8'
        shlak[2] = '0x099F'
    for q=0 to 2
        while uo.Count(shlak[q]) > 0
            uo.findtype(shlak[q])
            if uo.FindCount() > 0 then
                uo.exec("moveitem 'finditem' '1' 'trash'")
                wait(300)
            endif
        wend
    next
    if uo.count("0x0DBF")<1 then
        uo.closeuo()
    endif
uo.findtype(food)
if uo.findcount() then
    uo.usetype(food)
else
    uo.closeuo()
endif
end sub

Sub FishTile(t, x, y, z)
  var timer

  repeat
    check()
    uo.WaitTargetTile(Str(t), Str(x), Str(y), Str(z))
    uo.UseType(0x0DBF) #Удочка

    uo.DeleteJournal()
    timer = 0
    repeat
      wait(1000)
      timer = timer + 1
    until uo.InJournal("Points") or uo.InJournal("here") or uo.InJournal("line") or uo.InJournal("broken") or timer > 120
        

  until uo.InJournal("here") or uo.InJournal("line")
end sub

sub Fishing()
  UO.canceltarget()    
  UO.Print("Укажите Trash бочку...")
  UO.addobject('trash')
  While UO.Targeting()
      Wait(100)
  Wend
  
  var i, j, tile
  
  uo.Disarm()

  while not uo.dead()
    for i = -6 to 6
      for j = -6 to 6
        tile = 168
        while (not uo.PrivateGetTile(uo.GetX() + i, uo.GetY() + j, 251, tile, tile)) and (tile < 6045)
          if tile == 171 then
            tile = 310
          else
            if tile == 311 then
              tile = 6039
            else
              tile = tile + 1
            endif
          endif
        wend
      
        if tile < 6039 then
          tile = 0
        endif

        if tile < 6045 then
          uo.concolor(0x53)
          uo.Print("Fishing: " + Str((i + 6) * 13 + j + 7) + "/169...")
          uo.concolor(0)
          
          FishTile(tile, uo.GetX() + i, uo.GetY() + j, 251)
        endif
      next
    next
    
    uo.Print("Завершил круг. Продолжаю.")
  wend
end sub

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Переделал скрипт на резку обуви.

 

Мой не парсит...

 

sub Boots()
DIM Boot[9]
   Boot[0]  = 0x170A    
   Boot[1]  = 0x170B   
   Boot[2]  = 0x170C    
   Boot[3]  = 0x170D    
   Boot[4]  = 0x170E    
   Boot[5]  = 0x170F     
   Boot[6]  = 0x1710   
   Boot[7]  = 0x1711  
   Boot[8]  = 0x0DC8 
   VAR i 

   For i = 0 To 8

      while uo.Count(Boot[i]) > 0
            uo.findtype(Boot[i])
            if uo.FindCount() > 0 then
                UO.WaitTargetobject('finditem') 
            UO.UseType(0x0F9E)
            wait(3500)
            endif
        wend
    next
end sub

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
You cannot use that, боты вобще не режутся помоему )))))

Калич)) ну ты как обычно)) А ты вручную попробуй порезать))) на лоден нельзя юзать предметы типа дагера, ножниц или инструмента тинкера)) кроме тайла с трюмом) Кстати оба скрипта имеют неточности...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Скрипт для ловли рыбы на лодке. Сортирует все что выловил по контейнерам, вся рыба в корыто, вся обувь в ящик, хлам - SOSки, сеть и прочее в урну. Так же декодирует карты и откладывает карты 4-лвл вместе с тулзом в отдельную сумку, остальные карты и тулзы в урну.

Для корректной работы скрипта, необходимо наличие картографии у персонажа. Писался под ренджа с 100 картографии, по идее, при декодировании карт картография должна расти.

post-480-1359535281_thumb.png

Лодка должна стоять подальше от берега! Для корректной работы скрипта, положение лодки не имеет значения, но я ставлю ее всегда так, как показано на скрине, ибо при таком расположении нет "мертвых" тайлов на лодке(за мачтой).

Становимся на трюм, в трюм кладем ящик, сумку, корыто и урну. В пек кладем удочки(я забивал почти всю сумку 200 - 250 удочек) и жаренную рыбу.

скрипт - __work___Fishing_main_script.zip

################################################################
##                           by: Hi Jack                                    ##
##                    shard: Middle-Earth 2013                         ##
################################################################


Sub Eat()    #eda - fish steak
If UO.Count('0x097B') > 0 Then 
    UO.UseType ('0x097B') 
  Wait(500)
EndIf 
End Sub

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

Sub SW()
If UO.InJournal('Saving World State')  Then
    Repeat 
      Wait(200) 
       Until UO.InJournal('Saving World State complete') 
EndIf 
UO.Click('backpack') 
Repeat 
  Wait(200) 
Until uo.InJournal('Backpack|backpack') 
  Wait(500)
End Sub

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

Sub Maps()    #сортирует выловленные карты, 4-лвл в сумку, остальные в урну.
UO.FindType('0x14ED')
  Wait(200)
If UO.FindCount() > 0 Then 
    Repeat
           UO.UseObject('finditem')
         Wait (500)
      Until Uo.InJournal('successfully')
       Repeat
        UO.FindType('0x14EB', '-1')
         UO.Click("finditem") 
      Wait(500) 
    Until UO.InJournal('map') 
      Wait(200)
    If UO.InJournal('(1 lvl)|(2 lvl)|(3 lvl)')Then 
        UO.Exec("moveitem 'finditem' '1' 'aHatch.0x0E77'")
      Wait(250)
          UO.Exec("moveitem '^0x0FB7' '1' 'aHatch.0x0E77'")
      Wait(250)
    EndIf
    If UO.InJournal('(4 lvl)|(5 lvl)') Then
         UO.Exec("moveitem 'finditem' '1' 'aHatch.0x0E75'")
      Wait(250)
         UO.Exec("moveitem '^0x0FB7' '1' 'aHatch.0x0E75'")
      Wait(250)  
    EndIf
EndIf 
End Sub

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

Sub aBoots()    #перемещает выловленную обувь в ящик
VAR i
DIM aBoot[7] 
       aBoot[0]  = 0x170A    
       aBoot[1]  = 0x170B   
       aBoot[2]  = 0x170C    
       aBoot[3]  = 0x170D    
       aBoot[4]  = 0x170E    
       aBoot[5]  = 0x170F     
       aBoot[6]  = 0x1710   
       aBoot[7]  = 0x1711
       
For i = 0 To 7
    UO.FindType(aBoot[i], '-1', 'backpack') 
    If UO.FindCount() > 0 Then
        UO.Exec("moveitem 'finditem' '1' 'aHatch.0x0E3C'")
      Wait(500) 
    EndIf
Next
End Sub

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

Sub aFishs()    #перемещает выловленную рыбу в бочку
VAR i 
DIM aFish[3] 
       aFish[0]  = 0x09CE # фиолетовая рыба
       aFish[1]  = 0x09CD # бежевая рыба
       aFish[2]  = 0x09CC # зеленая рыба
       aFish[3]  = 0x0DD6 # магическая рыбка

For i = 0 To 3
    UO.FindType(aFish[i], '-1', 'backpack') 
    If UO.FindCount() > 0 Then
        UO.Exec("moveitem 'finditem' '' 'aHatch.0x0E83'")
      Wait(500) 
    EndIf
Next
End Sub

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

Sub aTrash()    #перемещает выловленный мусор в урну
VAR i 
DIM aTrash[1] 
       aTrash[0]  = 0x0DC8 #сеть
       aTrash[1]  = 0x099F #sos бутылка

For i = 0 To 1
    UO.FindType(aTrash[i], '-1', 'backpack') 
    If UO.FindCount() > 0 Then
        UO.Exec("moveitem 'finditem' '1' 'aHatch.0x0E77'") #!!!урна
      Wait(500) 
    End if
Next
End Sub

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

SUB MAIN()

VAR mx, my, mz, i, j
mx = UO.GetX('self') 
my = UO.GetY('self') 
mz = UO.GetZ('self')

UO.CancelMenu()
UO.CancelTarget()
UO.DeleteJournal()

UO.ConColor(0x0942)
UO.Print('Укажи трюм корабля')
UO.ConColor(0x0000)
UO.Exec('addobject aHatch') 
While UO.Targeting() 
  Wait(200)
Wend
UO.Disarm()
UO.UseObject('aHatch')
  Wait(200)
UO.UseObject('aHatch.0x0E83')
UO.UseObject('aHatch.0x0E3C')
UO.UseObject('aHatch.0x0E75')

Begin:
    For i = mx-6 To mx+6 
        For j = my-6 To my+6
            UO.DeleteJournal()
            UO.WaitTargetTile("0", str(i), str(j), str(mz)) 
              UO.UseType('0x0DBF')    #FishingPole
                    Wait(200)
            If UO.InJournal('<uninitialized object>!') Then
                  Wait(200)
                  GoTo Begin
            EndIf
            While Not (UO.InJournal('attract|equip|sight|looks|seem|catch|find|there!'))
                   Wait(200)
              Wend
            Eat()   
            SW()
            Maps()
            aBoots()
            aFishs()
            aTrash()
        Next
    Next
Goto Begin 
END SUB

__work___Fishing_main_script.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Отличный скрипт,что вот только картографи до 100 прокачивать персу,которого только для фишинга создал не очень хочется.Нельзя ли сделать так,что бы та карта,которую он не может прочитать(3-4 лвл) шли в сумку с картами в запечатанном виде,и хорошо бы ещё сразу резать боты на кожу).А так..скрипт конечно СУПЕР!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Отличный скрипт,что вот только картографи до 100 прокачивать персу,которого только для фишинга создал не очень хочется.Нельзя ли сделать так,что бы та карта,которую он не может прочитать(3-4 лвл) шли в сумку с картами в запечатанном виде,и хорошо бы ещё сразу резать боты на кожу).А так..скрипт конечно СУПЕР!

Резать и прочее на лодке нельзя, даже на трюме (как писал один человек с завышенным ЧСВ).

так что раз в день - в два проверяй и меняй контейнеры ...

по поводу карт ...

замени сортировку на это, писался на "коленке", причесать не получилось =)

20 раз попытается декодировать, если не выйдет - кинет в пек, если выйдет - прочекает, что у него на выходе и сделает согласно выхлопа =)

Sub Maps()    #сортирует выловленные карты, 4-лвл в сумку, остальные в урну.
VAR i
UO.FindType('0x14ED')
  Wait(200)
If UO.FindCount() > 0 Then
i=0
    Repeat
           UO.UseObject('finditem')
           i=i+1
         Wait (500)
      Until UO.InJournal('successfully') or i==20
      If UO.InJournal('successfully') Then
       Repeat
        UO.FindType('0x14EB', '-1')
         UO.Click("finditem") 
      Wait(500) 
    Until UO.InJournal('map')
      Wait(200)
    If UO.InJournal('(1 lvl)|(2 lvl)|(3 lvl)')Then 
        UO.Exec("moveitem 'finditem' '1' 'aHatch.0x0E77'")
      Wait(250)
          UO.Exec("moveitem '^0x0FB7' '1' 'aHatch.0x0E77'")
      Wait(250)
    EndIf
    If UO.InJournal('(4 lvl)|(5 lvl)') Then
         UO.Exec("moveitem 'finditem' '1' 'aHatch.0x0E75'")
      Wait(250)
         UO.Exec("moveitem '^0x0FB7' '1' 'aHatch.0x0E75'")
      Wait(250)  
    EndIf
  Else
   UO.FindType('0x14ED')
     Wait(200)
    If UO.FindCount() > 0 Then  
           UO.Exec("moveitem 'finditem' '1' 'aHatch.0x0E75'")
      Wait(250)
    EndIf
  EndIf 
EndIf 
End Sub

 

а если ящик с ботами переполнится?

Цели сделать бота не было, а так, чар 1-2 суток стоит потом можно и руками отнести домой и порезать кожу рыбу и прочее...

 

Краш клиента!!!!!)))))))))))

 

Никаких крашей не происходит, забивает бекпек. Лениво было крутить реколлы домой с автосбросом ящиков и прочей дребедени ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
Авторизация  

×
×
  • Создать...