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

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
[url=http://coop.myftp.org/utils/codesweeper.htm]**Выставляем отступы в скриптах***[/url] ©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