Что-же в нем не так? Скрипт Фишинг!

Ask for scripts here

Moderators: Murderator+, Murderator

Swint
Posts: 27
Joined: 2009-06-29 13:53:36

Что-же в нем не так? Скрипт Фишинг!

Post by Swint »

Не пойму,почему он не берет удочку из пака - кода она сломалась?
Ковырялся,так и не смог понять.Помогите плз...(=

Code: Select all

var MaxFailure=2 #  Кол-во фейловых попыток перед переходом к след тайлу  
sub main() 
var iX,iY 
for var iStep=0 to 1000 
for iX=-6 to 6 
for iY=-6 to 6 
GetAllFish(UO.GetX()+iX,UO.GetY()+iY) 
next 
next 
next 
end sub 
Sub GetAllFish(iX,iY) 
var counter=0 
repeat 
counter=counter+1 
UO.DeleteJournal() 
UO.WaitTargetTile(0,iX,iY,0) 
UO.UseType('0x0DBF') 
while not UO.InJournal('You pull out') and not UO.InJournal('but fail to catch') and not UO.InJournal('no fish here') and not UO.InJournal('Try fishing in water') and not UO.InJournal('That is too far away') and not UO.InJournal('You are too quick') and not UO.InJournal('The item should') 
wait(4000) 
wend 
if UO.InJournal('no fish here') OR UO.InJournal('Try fishing elsewhere') OR UO.InJournal('That is too far away') then 
return 
end if 
if UO.InJournal('You pull out') then 
counter=0 
GetFish() 
end if 
until UO.Injournal('no fish here') OR UO.InJournal('Try fishing elsewhere') OR UO.InJournal('That is too far away') OR counter>MaxFailure 
end sub 
Sub GetFish() 
UO.set('finddistance',0) 
UO.IgnoreReset() 
UO.Ignore('self') 
UO.FindType('0x352D',-1,'ground') 
UO.Ignore('finditem') 
UO.FindType(-1,-1,'ground') 
while UO.FindCount()>0 
UO.WaitTargetObject('finditem') 
UO.UseType('0x13F6') 
UO.Ignore('finditem') 
wait(1000) 
UO.FindType(-1,-1,'ground') 
wend 
UO.Ignorereset() 
UO.Ignore('self') 
UO.FindType('0x352D',-1,'ground') 
UO.Ignore('finditem') 
UO.FindType(-1,-1,'ground') 
while UO.FindCount()>0 
UO.Grab(0,'finditem') 
wait(1000) 
UO.FindType(-1,-1,'ground') 
wend 
UO.Ignorereset() 
end sub
Savage
Expert!
Posts: 1205
Joined: 2004-04-04 11:13:54
Location: Балаково, Саратовская обл.
Contact:

Post by Savage »

А если начинать ловить с удочкой в паке, берёт и ловит?
Swint
Posts: 27
Joined: 2009-06-29 13:53:36

Post by Swint »

Savage wrote:А если начинать ловить с удочкой в паке, берёт и ловит?



Угу,а когда ломаеться,то не берет!(
Savage
Expert!
Posts: 1205
Joined: 2004-04-04 11:13:54
Location: Балаково, Саратовская обл.
Contact:

Post by Savage »

А сообщение какое проходит при поломке?
По скрипту вроде всё верно на первый взгляд. Осталось выяснить где начинает залипать скрипт при поломке удочки.
Swint
Posts: 27
Joined: 2009-06-29 13:53:36

Post by Swint »

Savage wrote:А сообщение какое проходит при поломке?
По скрипту вроде всё верно на первый взгляд. Осталось выяснить где начинает залипать скрипт при поломке удочки.


Your fishing pole may have been destroer!

Вот именно,что скрипт нормальный.А лимнит при поломке!(
Savage
Expert!
Posts: 1205
Joined: 2004-04-04 11:13:54
Location: Балаково, Саратовская обл.
Contact:

Post by Savage »

'The item should'
Это к чему относится? Если не к чему, замени это сообщение на сообщение о поломке. Или добавь сообщение о поломке.

Code: Select all

while not UO.InJournal('You pull out') and not UO.InJournal('but fail to catch') and not UO.InJournal('no fish here') and not UO.InJournal('Try fishing in water') and not UO.InJournal('That is too far away') and not UO.InJournal('You are too quick') and not UO.InJournal('The item should')
сюда.
Swint
Posts: 27
Joined: 2009-06-29 13:53:36

Post by Swint »

Savage wrote:'The item should'
Это к чему относится? Если не к чему, замени это сообщение на сообщение о поломке. Или добавь сообщение о поломке.

Code: Select all

while not UO.InJournal('You pull out') and not UO.InJournal('but fail to catch') and not UO.InJournal('no fish here') and not UO.InJournal('Try fishing in water') and not UO.InJournal('That is too far away') and not UO.InJournal('You are too quick') and not UO.InJournal('The item should')
сюда.



По-моему не к чему.С пасибо,щас попробуем.

Я вот решил сделать,чтобы он не резал на стейки,а сразу в пак клал выловленную рыбу,ибо стейки весят больше...ды и дольше времени пока порежет и т.п. Вот,пытаюсь,но по-моему у меня такое не понятно сочитание,и не могу доделать ошибки всякие. Пожешь помочь,если не сложно!

Code: Select all

var mX, mY, mZ, i, j 
var f
var a=0
var TakeFish=1 ## 1
var MaxFailure=2 #  Кол-во фейловых попыток перед переходом к след тайлу 
sub main() 
   dim Fish[6]
   Fish[0]=0x09CC
   Fish[1]=0x09CD
   Fish[2]=0x09CE
   Fish[3]=0x09CF
   Fish[4]=0x14EB
   Fish[5]=0x0DD6
   Fish[6]=0x0DD6
   Beginning:
   uo.Set('finddistance','6')
   var iX,iY 
   for var iStep=0 to 1000 
      for iX=-6 to 6 
         for iY=-6 to 6 
            GetAllFish(UO.GetX()+iX,UO.GetY()+iY) 
         next 
      next 
   next 
end sub 
Sub GetAllFish(iX,iY) 
   var counter=0 
   repeat 
      counter=counter+1 
      UO.DeleteJournal() 
      UO.WaitTargetTile(0,iX,iY,0) 
      UO.UseType('0x0DBF') 
      while not UO.InJournal('You pull out') and not UO.InJournal('but fail to catch') and not UO.InJournal('no fish here') and not UO.InJournal('Try fishing in water') and not UO.InJournal('That is too far away') and not UO.InJournal('You are too quick') and not UO.InJournal('The item should') 
         wait(4000) 
      wend 
      if UO.InJournal('no fish here') OR UO.InJournal('Try fishing elsewhere') OR UO.InJournal('That is too far away') then 
         return 
      end if 
      if UO.InJournal('You pull out') then 
         counter=0 
         GetFish() 
      end if 
   until UO.Injournal('no fish here') OR UO.InJournal('Try fishing elsewhere') OR UO.InJournal('That is too far away') OR counter>MaxFailure 
end sub 
if TakeFish==1 then
   uo.Print('Собираем рыбу.')
   uo.FindType(Fish[f],"-1","ground")
   if uo.Count(Fish[2])> 0 then
      a= a+1
   end if
   for f=0 to 3
      uo.MoveItem("finditem","1","Fishs")
      wait(200)
   next
end if
wait(200)
next
end if
end sub


На 52-й линии ошибка Fish,что я забыл не пойму!(
Savage
Expert!
Posts: 1205
Joined: 2004-04-04 11:13:54
Location: Балаково, Саратовская обл.
Contact:

Post by Savage »

У тебя 7 элементов массива, а объявлено 6. После таких глюков лучше перезапустить клиента.
Savage
Expert!
Posts: 1205
Joined: 2004-04-04 11:13:54
Location: Балаково, Саратовская обл.
Contact:

Post by Savage »

Code: Select all

end sub  
if TakeFish==1 then

Тут что то не понятное. Лучше оставь пока как есть. Просто добавь сообщение о поломке удочки.
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Post by Mirage »

насчет элементов - так можно. Когда наоборот объявлено больше чем есть - нельзя.
Идет перескок на GetFish() которой нет.
Не указывает for next для рыбы :)
нет начала процедуры перед if TakeFish==1 then

зачем вы мучаете скрипт?


Code: Select all

sub FishingAround()
  VAR X, Y, i, MaxRange = 6, MaxVes = 620
  VAR knife = '0x0F51'   ; нож
  VAR Steak = '0x097A'
  VAR Bag = '0x40205DFE'

 DIM Fish[4]
  Fish[0]  = '0x09CC'   ; тип рыбы 1
  Fish[1]  = '0x09CD'   ; тип рыбы 2
  Fish[2]  = '0x09CE'   ; тип рыбы 3
  Fish[3]  = '0x09CF'   ; тип рыбы 4

for Y = -MaxRange to MaxRange
for X = -MaxRange to MaxRange
 if FishTiles(UO.GetX()+X, UO.GetY()+Y) then
   repeat
  UO.DeleteJournal()
    UO.Warmode(0)
         wait(100)
    UO.WaitTargetTile(FishTiles(UO.GetX()+X, UO.GetY()+Y), UO.GetX()+X, UO.GetY()+Y, UO.GetZ())
;ToHide()
  ; ********************************
  ; Auto Tools
    if UO.Count(0x0DBF) || UO.Count(0x0DC0) then
     if UO.Count(0x0DBF) then
      UO.UseType(0x0DBF); <-- удочка
     else
      UO.UseType(0x0DC0); <-- удочка
    endif
    else
     return 1
    endif
  ; ********************************
      repeat
     wait(100)
    until UO.InJournal('****|pull out|anything|поймали|You can|не получилось|no fish|нету рыбы|месте|далеко|вытащили удочку')
  For i=0 To 3
     UO.FindType( Fish[i], -1, 'ground' )
     If UO.FindCount() > 0 Then
        UO.Grab( 0, 'finditem' )
        Wait( 300 )
     Endif
  Next
   If UO.Weight > MaxVes Then
    UO.Print('Перегруз!')
     return 0
   endif
   If UO.Life < Uo.Str/10 then
    UO.Print('А мы умираем!')
    return 0
   endif
  until UO.InJournal("no fish|нету рыбы|anything|в другом месте|далеко|вытащили удочку") || UO.Dead()
 For i=0 To 3
     UO.FindType( Fish[i] )
     If UO.FindCount() > 0 Then
           UO.WaitTargetObject( 'finditem' )
           UO.UseType( knife )
           Wait( 500 )
           UO.FindType( Steak )
           If UO.FindCount() > 0 Then
              UO.MoveItem( 'finditem', '0' , Bag )
              wait( 500 )
          Endif
       Endif
   Next
 endif
   next
     next
UO.Print(" = Вся рыба в квадрате поймана = ")
UO.Sound(100)
 return 0
end sub

Sub FishTiles(X,Y)
var j
if UO.PrivateGetTile(X, Y, -1, 6038, 6066) then
 for j=6038 to 6066
  if UO.PrivateGetTile(X, Y, -1, j, j) then
   return j
  end if
 next
end if
return 0
end sub

Вот какойто старенький скрипт. вместо **** впиши сообщение при поломке. Проверь фразы - перевод. Я ловлю просто с 2-3 удочками в паке. Ломается одна - берет другую.
Last edited by Mirage on 2009-12-06 15:39:19, edited 2 times in total.
Savage
Expert!
Posts: 1205
Joined: 2004-04-04 11:13:54
Location: Балаково, Саратовская обл.
Contact:

Post by Savage »

С каких это пор разрешено выходить за границы объявления массива???
Swint
Posts: 27
Joined: 2009-06-29 13:53:36

Post by Swint »

Savage,спасибо! Теперь беред из пака удочку!

Mirage,тоже хороший скрипт,но он режет в паке рыбку - это мне тоже не нуно.Просто стейки весят много!) Хотя,я дагер не указал и норм,но из-за этого теряеться чуть время,но это терпимо!(= Спасибо! Хм...Этот крипт почему-то вырубился из-за чего-то!(

А можно чтобы он ещё ходил в верх и вниз и так по циклу?(=

Было-бы велеколепно!(= :oops:
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Post by Mirage »

Savage wrote:С каких это пор разрешено выходить за границы объявления массива???

Наверное перепутал сори :roll:


он не цикличный. Облавливает и встает. При перегрузке встает.
чтобы не резал убери

Code: Select all

 For i=0 To 3
     UO.FindType( Fish[i] )
     If UO.FindCount() > 0 Then
           UO.WaitTargetObject( 'finditem' )
           UO.UseType( knife )
           Wait( 500 )
           UO.FindType( Steak )
           If UO.FindCount() > 0 Then
              UO.MoveItem( 'finditem', '0' , Bag )
              wait( 500 )
          Endif
       Endif
   Next
Но вообще в нем есть скидывалка в сундук или в трюм карабля. Караз после порезки. PS у меня на шарде стейки гораздо легче рыбы :P
Swint
Posts: 27
Joined: 2009-06-29 13:53:36

Post by Swint »

Mirage wrote:
Savage wrote:С каких это пор разрешено выходить за границы объявления массива???

Наверное перепутал сори :roll:


он не цикличный. Облавливает и встает. При перегрузке встает.
чтобы не резал убери

Code: Select all

 For i=0 To 3
     UO.FindType( Fish[i] )
     If UO.FindCount() > 0 Then
           UO.WaitTargetObject( 'finditem' )
           UO.UseType( knife )
           Wait( 500 )
           UO.FindType( Steak )
           If UO.FindCount() > 0 Then
              UO.MoveItem( 'finditem', '0' , Bag )
              wait( 500 )
          Endif
       Endif
   Next
Но вообще в нем есть скидывалка в сундук или в трюм карабля. Караз после порезки. PS у меня на шарде стейки гораздо легче рыбы :P


А что сделать тобы он не останавливался а безконца ловил?))) :oops:
Miha*
Posts: 14
Joined: 2006-10-23 14:18:19

Post by Miha* »

Swint wrote:А что сделать тобы он не останавливался а безконца ловил?))) :oops:


хороший вопрос, во ту меня тож есть скрипт, но он не режет рыбу. .а вот тоже, выловил всё в округе и стоит. как задать ему цикличность? можно показать ан пердыдущийх скриптах.. будаит даже лучьше, мне какраз нужен с резом рыбы.. и слива её в трюм )
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Post by Mirage »

есть уроки - там есть про циклы
Swint
Posts: 27
Joined: 2009-06-29 13:53:36

Post by Swint »

Mirage wrote:есть уроки - там есть про циклы


Попотылся я что-то сделать,скрипт залипает,но зато не убираеться совсем.
Что не так,что добавить нуно?

Code: Select all

 sub FishingAround() 
  VAR X, Y, i, MaxRange = 2, MaxVes = 620
  VAR knife = '0x0F51'   ; нож
  VAR Steak = '0x097A'
  VAR Bag = '0x400E450B'

 DIM Fish[4]
  Fish[0]  = '0x09CC'   ; тип рыбы 1
  Fish[1]  = '0x09CD'   ; тип рыбы 2
  Fish[2]  = '0x09CE'   ; тип рыбы 3
  Fish[3]  = '0x09CF'   ; тип рыбы 4

for Y = -MaxRange to MaxRange
for X = -MaxRange to MaxRange
 if FishTiles(UO.GetX()+X, UO.GetY()+Y) then
   repeat
  UO.DeleteJournal()
    UO.Warmode(0)
         wait(100)
    UO.WaitTargetTile(FishTiles(UO.GetX()+X, UO.GetY()+Y), UO.GetX()+X, UO.GetY()+Y, UO.GetZ())
;ToHide()
  ; ********************************
  ; Auto Tools
    if UO.Count(0x0DBF) || UO.Count(0x0DC0) then
     if UO.Count(0x0DBF) then
      UO.UseType(0x0DBF); <-- удочка
     else
      UO.UseType(0x0DC0); <-- удочка
    endif
    else
     return 1
    endif
  ; ********************************
      repeat
     wait(4000)
    until UO.InJournal('Your fishing pole may have been destroer|pull out|anything|поймали|You can|не получилось|no fish|нету рыбы|месте|далеко|вытащили удочку')
  For i=0 To 3
     UO.FindType( Fish[i], -1, 'ground' )
     If UO.FindCount() > 0 Then
        UO.Grab( 0, 'finditem' )
        Wait( 300 )
     Endif
  Next
   If UO.Weight > MaxVes Then
    UO.Print('Перегруз!')
     return 0
   endif
   If UO.Life < Uo.Str/10 then
    UO.Print('А мы умираем!')
    return 0
   endif
  until UO.InJournal("no fish|нету рыбы|anything|в другом месте|далеко|вытащили удочку") || UO.Dead()

 endif
   next
     next
UO.Print(" = Вся рыба в квадрате поймана = ")
repeat
   wait(1000)
until i > 3
UO.Sound(100)
 return 0
end sub
CuHTpoH
Posts: 287
Joined: 2007-11-01 19:09:30
Location: Moscow
Contact:

Post by CuHTpoH »

Swint wrote:Попотылся я что-то сделать,скрипт залипает,но зато не убираеться совсем.

Херово попотылся.

Code: Select all

sub FishingAround()
   VAR X, Y, i, MaxRange = 2, MaxVes = 620
   VAR knife = '0x0F51'   ; нож
   VAR Steak = '0x097A'
   VAR Bag = '0x400E450B'
   DIM Fish[4]
         Fish[0]  = '0x09CC'   ; тип рыбы 1
         Fish[1]  = '0x09CD'   ; тип рыбы 2
         Fish[2]  = '0x09CE'   ; тип рыбы 3
         Fish[3]  = '0x09CF'   ; тип рыбы 4
   repeat
      for Y = -MaxRange to MaxRange
         for X = -MaxRange to MaxRange
            if FishTiles(UO.GetX()+X, UO.GetY()+Y) then
               repeat
                  If UO.Weight > MaxVes Then
                     UO.Print('Перегруз!')
                     return 0
                  endif
                  If UO.Life < Uo.Str/10 then
                     UO.Print('А мы умираем!')
                     return 0
                  endif
                  UO.DeleteJournal()
                  UO.Warmode(0) # вот это надо убрать нахрен и заменить на "если в журнале "я типа занят варкой" то делать uo.press(9) и ждать 500мсек"
                  wait(100)
                  UO.WaitTargetTile(FishTiles(UO.GetX()+X, UO.GetY()+Y), UO.GetX()+X, UO.GetY()+Y, UO.GetZ())
                  ;ToHide()
                  ; ********************************
                  ; Auto Tools
                  if UO.Count(0x0DBF) || UO.Count(0x0DC0) then
                     if UO.Count(0x0DBF) then
                        UO.UseType(0x0DBF); <-- удочка
                     else
                        UO.UseType(0x0DC0); <-- удочка
                     endif
                  else
                     return 1
                  endif
                  ; ********************************
                  repeat
                     wait(300)
                  until UO.InJournal('Your fishing pole may have been destroer|pull out|anything|поймали|You can|не получилось|no fish|нету рыбы|месте|далеко|вытащили удочку')
                  For i=0 To 3
                     UO.FindType( Fish[i], -1, 'ground' )
                     If UO.FindCount() > 0 Then
                        UO.Grab( 0, 'finditem' )
                        Wait( 300 )
                     Endif
                  Next
               until UO.InJournal("no fish|нету рыбы|anything|в другом месте|далеко|вытащили удочку") || UO.Dead()
            endif
         next
      next
      UO.Print(" = Вся рыба в квадрате поймана = ")
      UO.Sound(100)
   until uo.dead()
   return 0
endsub

Sub FishTiles(X,Y)
   var j
   if UO.PrivateGetTile(X, Y, -1, 6038, 6066) then
      for j=6038 to 6066
         if UO.PrivateGetTile(X, Y, -1, j, j) then
            return j
         endif
      next
   endif
   return 0
endsub
**Выставляем отступы в скриптах*** ©Destruction
Feel the Power of Dark Side
Swint
Posts: 27
Joined: 2009-06-29 13:53:36

Post by Swint »

CuHTpoH wrote:
Swint wrote:Попотылся я что-то сделать,скрипт залипает,но зато не убираеться совсем.

Херово попотылся.

Ммм огромной спасибо!(= :oops:
Miha*
Posts: 14
Joined: 2006-10-23 14:18:19

Post by Miha* »

пишит, что ошибка: UO.PrivateGetTile который стоит сдеьс:
if UO.PrivateGetTile(X, Y, -1, 6038, 6066) then про второй ничегоен говорил, эта часть в конце скрипта, то что ты сказал анписать вместо вар я написал
Post Reply