Page 1 of 1

Alchemy+Ходилка+Скупка

Posted: 2006-06-05 22:03:39
by klonuk
Это мой 1 скрипт такой велечины так что строга не судите ,любые предложения , вопросы и т.д сюда или в асю .
Спасибо всем кто помог в любой мере в написание это скрипта.
Огромное спасибо создателю SuperWalkera . )))

Code: Select all


#####################################################################
#bu klonuk # Icq 214 010 589###05.06.06##############################
#####################################################################
#######################Alchemy+Ходилка+Скупка v 1.0 b################
#####################################################################
#Описания.
#1.Скрипт полностью автономен, настраиваем , остовляем на ночь.
#2.Скрипт самостоятельно скупает не достоующие ингридиенты.
#3.Ходилка за вендором , что бы не убег т.к дистанция скупки не #болшьая
#а вендора постоянно двигаются.
#4.Скрипт очень легко можно переделать под любой другой навык.
#5.Чар варит Лессер куре (можно изменить ) , если болше ,10 штук #продает , подходит к вендору  закупает реги и бутылки ,если их 
# мало.  
# 
#####################################################################
#Пояснения.
#1. Скрипт используется быстрая закупка с вендора ,
#прежде чем запускать настройте быструю закупку с вендора в инжекте в закладке main
#Buy/Sell .... вставте ....Butul ( empty bottles) ....reg (из чего готовим )
# prod ( что продаем ).
#2.запускать Alchemy,У вас появиться прицел ,
#укажите этим прицелом вендора Алхимии
#
######################################################################


var reg='0x0F84'  ;  тупе рега которые юзаем 
var food='' ; что едим
sub Alchemy() 
VAR Dist
UO.Print('А за кем бегать будем?') 
   UO.AddObject('Vendor') 
   While UO.Targeting() 
      wait(500) 
   Wend 
repeat 
UO.Set ('finddistance','20')
Uo.FindType('Vendor', '-1', '1')
Dist=Uo.GetDistance ('finditem')
uo.DeleteJournal() 
UO.UseType(reg) ; из чего делаешь 
UO.WaitMenu('What','Cure')   ;вроде так )      
while NOT UO.InJournal("You put") AND NOT UO.InJournal(" failed") 
wait(100) 
wend 
if UO.count(reg) < 20 then ; если рег менше чем 20  докупает
       xodilka()   
     if  Dist<3 then                 
        reg() 
     endif
endif 
if Uo.count(0x0F0E,0x0000) < 20 then ;  если бутлок менше чем 20 докупает 
     xodilka()   
    if  Dist<3 then
        Butul() 
    endif 
endif
if Uo.count(0x0F07,0x0000) > 10 then ; ,info на бытлку и type и color  сюда 
      xodilka()   
   if  Dist<3 then
      prod() 
      eda()  
   endif
endif 
until uo.Dead()                                                                          
end sub 

Sub reg()                                                                                
  UO.Buy('reg')                                                                          
  wait(100)                                                                            
end sub                                                                                
                                                                                      
Sub Butul()                                                                            
UO.Buy('Butul')                                                                        
wait(100)                                                                            
end sub                                                                                
                                                                                      
Sub prod()                                                                          
UO.Sell('prod')                                                                    
wait(100)                                                                            
end sub


Sub xodilka()
SuperWalk(0,0,'Vendor') 
wait (1000)
end sub


Sub eda()

uo.usetype (food)    
uo.usetype (food)    
end sub

Sub CheckLag() 
   UO.DeleteJournal() 
   UO.Click('backpack') 
   repeat 
      wait(500) 
   until UO.InJournal('backpack') 
end sub 




#==============================================================
#  SuperWalk(X,Y,Serial) - char is walking by dX and dY step
#                sub using Home, End, PgUp, PgDown keys
#                d'not rebind this key from default action!
#     walkwait - delay after keypress
#--------------------------------------------------------------
Sub SuperWalk(x,y,Target)
	VAR i
	VAR dir,ldir,rdir,key,olddir
	VAR dx,dy,Exit=0
	VAR CacheLimit=9,CacheIndex="Text"
	DIM CacheX[10], CacheY[10]
	VAR Dist
	CacheX[0]="Test"
	While Exit<>1	
		If Target<>"" Then
			dx=UO.GetX(Target)-UO.GetX()
			dy=UO.GetY(Target)-UO.GetY()
;			UO.Print("Target locked!")
			If UO.GetDistance(Target)<2 Then
				Exit=1
			Endif
		Else
			dx=x-UO.GetX()
			dy=y-UO.GetY()
			If dx==0 AND dy==0 Then
				Exit=1
			Endif

		Endif

		If dx<>0 AND dy<>0 Then
			If dx>0 AND dy>0 Then ; GoSE
				dir=3
				ldir=2
				rdir=4
				key=40 ; DownArrow
				olddir=UO.GetDir()
				If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then
					If olddir==2 Then ; GoNE
						dir=1
						ldir=0
						rdir=1
						key=39 ; RightArrow
						While UO.GetDir()<>1
							StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
						Wend
					Else ; GoSW
						dir=5
						ldir=5
						rdir=6
						key=37 ; LeftArrow
						While UO.GetDir()<>5
							StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
						Wend
					Endif
				Endif
			Endif

			If dx>0 AND dy<0 Then ; GoNE
				dir=1
				ldir=0
				rdir=2
				key=39 ; RightArrow
				olddir=UO.GetDir()
				If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then
					If olddir==0 Then ; GoWN
						dir=7
						ldir=6
						rdir=7
						key=38 ; UpArrow
						While UO.GetDir()<>7
							StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
						Wend
					Else ; GoSE
						dir=3
						ldir=3
						rdir=4
						key=40 ; DownArrow
						While UO.GetDir()<>3
							StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
						Wend
					Endif
				Endif
			Endif

			If dx<0 AND dy>0 Then ; GoSW
				dir=5
				ldir=4
				rdir=6
				key=37 ; LeftArrow
				olddir=UO.GetDir()
				If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then
					If olddir==6 Then ; GoWN
						dir=7
						ldir=7
						rdir=0
						key=38 ; UpArrow
						While UO.GetDir()<>7
							StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
						Wend
					Else ; GoSE
						dir=3
						ldir=2
						rdir=3
						key=40 ; DownArrow
						While UO.GetDir()<>3
							StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
						Wend
					Endif
				Endif
			Endif

			If dx<0 AND dy<0 Then ; GoWN
				dir=7
				ldir=6
				rdir=0
				key=38 ; UpArrow
				olddir=UO.GetDir()
				If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then
					If olddir==0 Then ; GoNE
						dir=1
						ldir=1
						rdir=2
						key=39 ; RightArrow
						While UO.GetDir()<>1
							StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
						Wend
					Else ; GoSW
						dir=5
						ldir=4
						rdir=5
						key=37 ; LeftArrow
						While UO.GetDir()<>5
							StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
						Wend
					Endif
				Endif
			Endif
		Endif
	
		If dx<>0 AND dy==0 Then
			If dx>0 Then ; GoE
				dir=2
				key=34 ; PgDown
				olddir=UO.GetDir()
				If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then
					If olddir==2 Then ; GoSE
						dir=3
						ldir=3
						rdir=4
						key=40 ; DownArrow
						While UO.GetDir()<>3
							StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
						Wend
					Else ; GoNE
						dir=1
						ldir=1
						rdir=0
						key=39 ; RightArrow
						While UO.GetDir()<>1
							StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
						Wend
					Endif
				Endif
			Endif
			
			If dx<0 Then ; GoW
				dir=6
				key=36 ; Home key
				olddir=UO.GetDir()
				If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then
					If olddir==0 Then ; GoWN
						dir=7
						ldir=7
						rdir=0
						key=38 ; UpArrow
						While UO.GetDir()<>7
							StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
						Wend
					Else ; GoSW
						dir=5
						ldir=4
						rdir=5
						key=37 ; LeftArrow
						While UO.GetDir()<>5
							StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
						Wend
					Endif
				Endif
			Endif
		Endif

		If dx==0 AND dy<>0 Then
			If dy>0 Then ; GoS
				dir=4
				key=35 ; End
				If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then
					If olddir==2 Then ; GoSE
						dir=3
						ldir=2
						rdir=3
						key=40 ; DownArrow
						While UO.GetDir()<>3
							StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
						Wend
					Else ; GoSW
						dir=5
						ldir=6
						rdir=5
						key=37 ; LeftArrow
						While UO.GetDir()<>5
							StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
						Wend
					Endif
				Endif
			Endif
			
			If dy<0 Then ;GoN
				dir=0
				key=33 ; PgUp
				olddir=UO.GetDir()
				If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then
					If olddir==2 Then ; GoNE
						dir=1
						ldir=1
						rdir=2
						key=39 ; RightArrow
						While UO.GetDir()<>1
							StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
						Wend
					Else ; GoWN
						dir=7
						ldir=7
						rdir=6
						key=38 ; UpArrow
						While UO.GetDir()<>7
							StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
						Wend
					Endif
				Endif
			Endif
		Endif
	Wend
end sub


Sub StepEdit(x,y,dir,key)
	VAR walkwait=300
	VAR ErrLevel=0
	If UO.GetDir()<>dir Then
		UO.Press(key)
		wait(walkwait)
		If UO.GetDir()<>dir Then
			CheckLag()
		Endif
	Endif
	UO.Press(key)
	wait(walkwait)
	If x==UO.GetX() AND y==UO.GetY() Then
		CheckLag()
		If x==UO.GetX() AND y==UO.GetY() Then
;zatik
			ErrLevel=1
		Endif
	Endif
	Return ErrLevel
end sub


Sub StepArrow(x,y,dir,ldir,rdir,key)
	VAR walkwait=300
	VAR ErrLevel=0
	If UO.GetDir()<>dir Then
		UO.Press(key)
		wait(walkwait)
		If UO.GetDir()<>dir AND UO.GetDir()<>ldir AND UO.GetDir()<>rdir Then
			CheckLag()
		Endif
	Endif

	If UO.GetX()==x AND UO.GetY()==y Then
		UO.Press(key)
		wait(walkwait)
		If UO.GetDir()==dir AND UO.GetX()==x AND UO.GetY()==y Then
			CheckLag()
			If UO.GetDir()==dir AND UO.GetX()==x AND UO.GetY()==y Then
; zatik			
				ErrLevel=1
			Endif
		Endif
	Endif
	Return ErrLevel
end sub




Posted: 2006-06-06 07:12:48
by klonuk
Ну может ктонть чтонть скажет, даже скучно как то. По тестили бы :roll: :roll:

Posted: 2006-06-06 10:24:24
by Bangbuss
vrode rabotaet vso, toka nana4 nekak neostavit`, o4enj 4asto on prosto ostanovitsa i nefiga nedelaet, esli on nekupil empty bottles po kakimta pri4inam i oni savsem kon4ilis to skript dal6e rabotat` nebudet.

Posted: 2006-06-06 10:39:06
by klonuk
Bangbuss wrote:vrode rabotaet vso, toka nana4 nekak neostavit`, o4enj 4asto on prosto ostanovitsa i nefiga nedelaet, esli on nekupil empty bottles po kakimta pri4inam i oni savsem kon4ilis to skript dal6e rabotat` nebudet.
Дороботаю...попозже шас занет... и с тебя чар как всегда )

Posted: 2006-06-07 08:41:42
by Scripts Writer
Автор.А ты сам то проверял скрипт? рабочий он или нет? Сразу вижу что ничего он тебе не сварит.

Code: Select all

UO.UseType(reg) ; из чего делаешь 
UO.WaitMenu('What','Cure')   ;вроде так ) 
2Еще интересно где ты так качаешься , прямо у вендора )) На дрв уж точно такого тебе никто бы не позволил. И на гз бы вальнули ...

Posted: 2006-06-07 12:17:10
by klonuk
You Must Die wrote:Автор.А ты сам то проверял скрипт? рабочий он или нет? Сразу вижу что ничего он тебе не сварит.

Code: Select all

UO.UseType(reg) ; из чего делаешь 
UO.WaitMenu('What','Cure')   ;вроде так ) 
2Еще интересно где ты так качаешься , прямо у вендора )) На дрв уж точно такого тебе никто бы не позволил. И на гз бы вальнули ...
Качаюсь прямо у вендора в Гз ... стоит система Гвардс ....
ПРокачал на нем до 100 )

Хз что ты написал а варит исправно

Posted: 2006-06-07 12:49:20
by Scripts Writer
Ты сейчас утверждаешь что карандаш пишет чернилами.Неможет он работать т.к. сначало должно идти меню а потом уже действие которое вызывает это меню, тем более что дальше стоит проверка на журнал.

п.с. если твоя месага утеряется(зделано или неполучилось) то скрипт уйдёт в офф т.к. будет постоянно её ждать.

Posted: 2006-06-07 13:08:31
by Bangbuss
You Must Die wrote:Ты сейчас утверждаешь что карандаш пишет чернилами.Неможет он работать т.к. сначало должно идти меню а потом уже действие которое вызывает это меню, тем более что дальше стоит проверка на журнал.

п.с. если твоя месага утеряется(зделано или неполучилось) то скрипт уйдёт в офф т.к. будет постоянно её ждать.
Tak ti lu46e izprav etat skript esli ti znae6 kak, mne tozhe skript nerabotaet idealno.

Posted: 2006-06-07 13:22:37
by Scripts Writer
Я то исправлю,но пусть лучше автор поучится на своих ошибках и более не будет их допускать.

Posted: 2006-06-07 13:57:18
by klonuk
You Must Die wrote:Я то исправлю,но пусть лучше автор поучится на своих ошибках и более не будет их допускать.
Я понел , но свреху писал что это мой 1 скрипт такой велчинины ...
ЧТо я тока начел писать их.... по этому имею право допустить ошибку ..
Если можешь то исправь что не так... я пока занет и не могу занимать этим )) потому что пишу другой..

Posted: 2006-06-07 14:07:50
by Scripts Writer
1 ошибка:

Code: Select all

UseType
WaitMenu
Разберись с этим, почитай ФАК, и раз и навсегда уясни :

Что сначала ловушка на меню, а потом действие объекта ...

2 ошибка: добавь таймер в проверку на журнал.(динамическая пауза)

Code: Select all

(k<100)
k=k+1
wait(100)

Posted: 2006-06-08 09:20:23
by Bangbuss
Nu kto iz scripterov perepi6et etat script, mne kak nescripteru to 6to pokazali o6ibki ne4ego nedajot.

Posted: 2006-06-08 10:46:10
by omi4

Code: Select all

#####################################################################
#bu klonuk # Icq 214 010 589###05.06.06##############################
#####################################################################
#######################Alchemy+Ходилка+Скупка v 1.0 b################
#####################################################################
#Описания.
#1.Скрипт полностью автономен, настраиваем , остовляем на ночь.
#2.Скрипт самостоятельно скупает не достоующие ингридиенты.
#3.Ходилка за вендором , что бы не убег т.к дистанция скупки не #болшьая
#а вендора постоянно двигаются.
#4.Скрипт очень легко можно переделать под любой другой навык.
#5.Чар варит Лессер куре (можно изменить ) , если болше ,10 штук #продает , подходит к вендору  закупает реги и бутылки ,если их
# мало.
#
#####################################################################
#Пояснения.
#1. Скрипт используется быстрая закупка с вендора ,
#прежде чем запускать настройте быструю закупку с вендора в инжекте в закладке main
#Buy/Sell .... вставте ....Butul ( empty bottles) ....reg (из чего готовим )
# prod ( что продаем ).
#2.запускать Alchemy,У вас появиться прицел ,
#укажите этим прицелом вендора Алхимии
#
######################################################################

; не используй глобалки без нужды, тем более тут
; список прописан, смысл править рег?
; var reg='0x0F84'  ;  тупе рега которые юзаем
; var food='' ; что едим

sub Alchemy()
var reg='0x0F84'  ;  тупе рега которые юзаем
var food='' ; что едим

UO.Print('А за кем бегать будем?')
	UO.AddObject('Vendor')
	while UO.Targeting()
		wait(500)
	wend
repeat
; зачем искать? если мы его уже знаем
;UO.Set ('finddistance','20')
;Uo.FindType('Vendor', '-1', '1')
UO.DeleteJournal()
UO.WaitMenu('What','Cure')   ;вроде так )
UO.UseType(reg) ; из чего делаешь

; зачем while и почему and?
;while NOT UO.InJournal("You put") and NOT UO.InJournal(" failed")
;wait(100)
;wend
repeat
	wait(100)
until UO.InJournal("You put") or UO.InJournal(" failed")

if UO.Count(reg) < 20 then ; если рег менше чем 20  докупает
			 xodilka()
		 if UO.GetDistance ('Vendor')<3 then
				reg()
		 endif
endif
if UO.Count(0x0F0E) < 20 then ;  если бутлок менше чем 20 докупает
		 xodilka()
		if  UO.GetDistance ('Vendor')<3 then
				Butul()
		endif
endif
if UO.Count(0x0F07,0x0000) > 10 then ; ,info на бытлку и type и color  сюда
			xodilka()
	 if  UO.GetDistance ('Vendor')<3 then
			prod()
			eda(food)
	 endif
endif
until UO.Dead()
end sub

Sub reg()
	UO.Buy('reg')
	wait(100)
end sub

Sub Butul()
UO.Buy('Butul')
wait(100)
end sub

Sub prod()
UO.Sell('prod')
wait(100)
end sub

Sub xodilka()
SuperWalk(0,0,'Vendor')
wait (1000)
end sub


Sub eda(food)
uo.usetype (food)
uo.usetype (food)
end sub

Sub CheckLag()
	 UO.DeleteJournal()
	 UO.Click('backpack')
	 repeat
			wait(500)
	 until UO.InJournal('backpack')
end sub

Posted: 2006-06-08 11:58:24
by klonuk
спс ошибки будут учтены в будещем...

Posted: 2006-06-08 11:59:02
by Savage
bu Klonuk :)

Posted: 2006-06-08 12:01:26
by klonuk
Savage wrote:bu Klonuk :)
:roll:

Posted: 2006-06-08 19:15:25
by Bangbuss
Nu est kosjak v etom skripte, esli butilki zakon4ilis, to skript vap6e dal6e nerabotaet 4ar prosta stoit i ne4ego nedelaet, nelza kakta sdelat` 6tob esli dazhe nety bitilok on idot za vendorom vso reme staraetsa kupit` butilki.

Posted: 2006-06-08 20:26:20
by Scripts Writer
Savage wrote:bu Klonuk :)
Меня тоже улыбнуло =)
Автор-пиши ищо.