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 :)


Меня тоже улыбнуло =)
Автор-пиши ищо.