Yoko

All sides of Injection
It is currently 2026-01-22 00:41:10

All times are UTC+02:00




Post new topic  Reply to topic  [ 6 posts ] 
Author Message
 Post subject: Скуп регов
PostPosted: 2006-09-20 11:25:35 
Offline

Joined: 2006-08-09 20:33:57
Posts: 34
Люди у кого есть нормально работающий скрипт для скупки регов на ДРВ? А то тот НОВАвский, реколится у меня по первой руне, скупает, а дальше не телепортится.... может это я где-то накосячил когда менял, посмотрите плиз
Code:
 sub main()     
   var maxRune = 11; # Размерность масива rune
   var maxVendors = 11; # Размерность масива vendors
   var maxRegs = 3; # Кол-ва покупаемых регов
   var res;
   DIM rune[11]     
   DIM ven[11]
   DIM RegsToBuy[10] #Типы регов которые вы покупаете для выкладывания в банк
   var useAll = true; # Если не надо отменять никакие руны поставте true
   var maxNoBuy = 2; # Размерность масива NoBuy
;   DIM NoBuy[10] #Масив для пометки рун по которым ненужно реколится   
   var i, n, j, m, recallNext, h, amoun     
   var runeBank = '0x400D8B5A';
   rune[1]='0x403D7789'     
   rune[2]='0x403D1DF4'
   rune[3]='0x4000294E'
   rune[4]='0x40265E8E'
   rune[5]='0x404E55E7'
   rune[6]='0x403D7766'
   rune[7]='0x401DAE63'
   rune[8]='0x40002A12'
   rune[9]='0x4029181D'
   rune[10]='0x40002A2C'
   rune[11]='0x400D8B1A'
;   rune[12]='0x4015C288'
   ven[1]='0x00086F0F' #minoc
   ven[2]='0x00442AC8' #delucia
   ven[3]='0x0048E86C' #br1
   ven[4]='0x00476698' #br2
   ven[5]='0x0009F9A3' #br3
   ven[6]='0x00020BE1' #br4
   ven[7]='0x004A66A1' #br5
   ven[8]='0x0004F14E' #tr1
   ven[9]='0x000EFBCA' #tr2
   ven[10]='0x004899DE' #tr3
   ven[11]='0x0007542E,0x00041E50' #tr
;   ven[12]='0x00002E39,0x00002E38' #Skara bra
;   NoBuy[1] = 6;
;   NoBuy[2] = 7;
   RegsToBuy[1] = '0x0E34' #blank scrolls
   RegsToBuy[1] = '0x0F7B' #Blood Moss
   RegsToBuy[1] = '0x0F88' #Nightshade
   RegsToBuy[1] = '0x0F8D' #Spider's Silk
   RegsToBuy[1] = '0x0F8C' #Sulfurous Ash
;   RegsToBuy[1] = '0x0F84' #Garlic
   RegsToBuy[1] = '0x0F86' #Mandrake Roots
   RegsToBuy[1] = '0x0F7A' #Black Pearls
;   RegsToBuy[1] = '0x0F85' #Ginseng
   RegsToBuy[1] = '0x175D' #folded cloth
   RegsToBuy[1] = '0x0F0E' #empty bottles
   RegsToBuy[1] = '0x14EB' #a Blank Map
   
   repeat       
      for i=1 to maxRune
         recallNext = true;
         if useAll == false then
            for m = 1 to maxNoBuy
               if i == NoBuy[m] then
                  recallNext = false;   
               endif
            next
         endif
         if recallNext == true then
            if UO.Weight>700 then   
               recall(-1,runeBank)               
               UO.Say("bank guards")               
               wait(600);
               for h=1 to maxRegs
                  uo.findtype(RegsToBuy[h],-1,"Bpack")
                  amoun = uo.GetQuantity("finditem")-30                   
                  if amoun > 0 then
                     uo.moveitem("finditem",amoun,"lastcontainer")
                  endif
                  wait(600)
               next
            endif
            recall(i,rune)
            for j=1 to GetAmountVendors( ven[i] )
               uo.Print(STR(GetVendor( ven[i], j )))
               WalkN(0,0,GetVendor( ven[i], j ))
               UO.buy('test','vendor')
               wait(500)
               UO.Say( uo.GetName(GetVendor( ven[i], j )) + " buy")
               UO.DeleteJournal()             
               if UO.BM<30 || UO.BP<30 || UO.MR<30 then
                  BuyRegs( uo.GetName(GetVendor( ven[i], j )) )
               end if   
            next
            UO.Click(rune[i])
            repeat
               wait(500)
            until UO.InJournal('Recalls Remaining')
            res = takenum()
            if res < 10 then
               Mark(i,rune)
            endif
            med()
         endif
      next
      waitNext();
   until UO.Dead()
end sub

sub BuyRegs( VendorName )
   if UO.BM<30 then
      UO.buy('bm','vendor')
      wait(500)
      UO.Say( VendorName + " buy")
      UO.DeleteJournal()
   end if     
   if UO.BP<30 then
      UO.buy('bp','vendor')
      wait(500)
      UO.Say( VendorName + " buy")     
      UO.DeleteJournal()
   end if     
   if UO.MR<30 then
      UO.buy('mr','vendor')
      wait(500)
      UO.Say( VendorName + " buy")
      UO.DeleteJournal()
   end if
end sub

sub GetVendor( str, j )
   var   lstr, ven, venID, i
   if GetAmountVendors( str ) < j then
      j = GetAmountVendors( str );
   endif
   lstr = len( str )
   ven = 1;
   venID = ''   
   for i = 0 to lstr       
      if str[i]==',' then           
         if ven == j then             
            return venID
         else
            venID = ''
            ven = ven + 1
         endif
      else
         venID = venID+str[i];       
      endif
   next
   return venID
end sub

sub waitNext()
   var i;
   for i = 0 to 80
      uo.Say("guards Bank")
      wait(4000)
   next
end sub

sub GetAmountVendors( str )
   var j, num, i
   j = len( str ) - 1
   num=1;
   for i = 0 to j       
      if str[i]==',' then
         num=num+1       
      endif       
   next     
   return num;
end sub
 
sub takenum()
   var ns, j, i, n
   var str, num
   num=''     
   n=uo.InJournal('Recalls Remaining')-1
   str=uo.Journal(n)
   UO.Print(str)
   j = len( str ) - 1
   for i = 0 to j
      if str[i]<>' ' then
         num=num+str[i]
      else
         return val(num)
      endif       
   next
   return val(num)
end sub

sub Recall(i,rune)
   var b
   if i <> -1 then
      uo.print('Recoll Rune '+str(i))
   endif
   for b=1 to 10
      if i == -1 then
         uo.deletejournal()
         uo.waittargetobject(rune)
         uo.cast('Recall',rune)
         if WaitForRecall()==1 then
            return 1
         end if
      else
         uo.deletejournal()
         uo.waittargetobject(rune[i])
         uo.cast('Recall',rune[i])
         if WaitForRecall()==1 then
            return 1
         end if
      end if
   next
   return 0
end sub

sub Mark(i,rune)
   uo.waittargetobject(rune[i])
   uo.cast('Mark',rune[i])
end sub

sub WaitForRecall()
   var Text1="cliloc# 0xAB68"
   var mess='',lastX=uo.getX(),lastY=uo.getY()
   for var v=0 to 200
      mess=uo.journal(0)
      if uo.Journal(0)==Text1 then
         return 0
      end if
      if uo.getX()<>lastX OR uo.getY()<>LastY then
         return 1
      end if
      wait(50)
   next
   return 0
end sub

sub med()
   VAR LastTimer
   while UO.Mana<UO.Int
      LastTimer=UO.Timer()
      UO.UseSkill('Meditation')
      repeat
         wait(100)
      until UO.InJournal("You are") OR UO.InJournal("You lose") OR UO.Timer()>LastTimer+200
      UO.DeleteJournal()
      wait(200)
   wend
end sub


##############################
# WalkN(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!
# serial - Serial of target or "" - string
# walkwait - delay after keypress
# Example:
# WalkN(2080,2113,'') - go to coordinates
# WalkN(0,0,'0x12345678') - go to target position
#--------------------------------------------------------------
sub WalkN(x,y,Target)
   VAR i,StepSucess
   VAR dx,dy,Exit=0
   While Exit<>1
      If Target<>"" Then
         dx=UO.GetX(Target)-UO.GetX()
         dy=UO.GetY(Target)-UO.GetY()
         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 Target<>"" AND uo.GetDistance(Target)<=3 then         
         Exit=1
      endif
      If dx<>0 AND dy<>0 Then
         If dx>0 AND dy>0 Then
            StepSucess=Go(3,40,300) ;SE - DownArrow
            If StepSucess==-1 Then
               StepSucess=Go(7,38,300) ;WN - UpArrow
               StepSucess=Go(1,39,300) ;NE - RightArrow
               If StepSucess==-1 Then
                  StepSucess=Go(5,37,300) ;SW - LeftArrow
               Endif
            Endif
         Endif
         If dx>0 AND dy<0 Then
            StepSucess=Go(1,39,300) ;NE - RightArrow
            If StepSucess==-1 Then
               StepSucess=Go(5,37,300) ;SW - LeftArrow
               StepSucess=Go(3,40,300) ;SE - DownArrow
               If StepSucess==-1 Then
                  StepSucess=Go(7,38,300) ;WN - UpArrow
               Endif
            Endif
         Endif
         If dx<0 AND dy>0 Then
            StepSucess=Go(5,37,300) ;SW - LeftArrow
            If StepSucess==-1 Then
               StepSucess=Go(1,39,300) ;NE - RightArrow
               StepSucess=Go(7,38,300) ;WN - UpArrow
               If StepSucess==-1 Then
                  StepSucess=Go(3,40,300) ;SE - DownArrow
               Endif
            Endif
         Endif
         If dx<0 AND dy<0 Then
            StepSucess=Go(7,38,300) ;WN - UpArrow
            If StepSucess==-1 Then
               StepSucess=Go(3,40,300) ;SE - DownArrow
               StepSucess=Go(5,37,300) ;SW - LeftArrow
               If StepSucess==-1 Then
                  StepSucess=Go(1,39,300) ;NE - RightArrow
               Endif
            Endif
         Endif
      Endif
      If dx<>0 AND dy==0 Then
         If dx>0 Then
            StepSucess=Go(2,34,300) ;E - PgDown
            If StepSucess==-1 Then
               StepSucess=Go(3,40,300) ;SE - DownArrow
               If StepSucess==-1 Then
                  StepSucess=Go(1,39,300) ;NE - RightArrow
               Endif
               StepSucess=Go(2,34,300) ;E - PgDown
            Endif
         Endif
         If dx<0 Then
            StepSucess=Go(6,36,300) ;W - Home
            If StepSucess==-1 Then
               StepSucess=Go(7,38,300) ;WN - UpArrow
               If StepSucess==-1 Then
                  StepSucess=Go(5,37,300) ;SW - LeftArrow
               Endif
               StepSucess=Go(6,36,300) ;W - Home
            Endif
         Endif
      Endif
      If dx==0 AND dy<>0 Then
         If dy>0 Then
            StepSucess=Go(4,35,300) ;S - End
            If StepSucess==-1 Then
               StepSucess=Go(3,40,300) ;SE - DownArrow
               If StepSucess==-1 Then
                  StepSucess=Go(5,37,300) ;SW - LeftArrow
               Endif
               StepSucess=Go(4,35,300) ;S - End
            Endif
         Endif
         If dy<0 Then
            StepSucess=Go(0,33,300) ;N - PgUp
            If StepSucess==-1 Then
               StepSucess=Go(1,39,300) ;NE - RightArrow
               If StepSucess==-1 Then
                  StepSucess=Go(7,38,300) ;WN - UpArrow
               Endif
               StepSucess=Go(0,33,300) ;N - PgUp
            Endif
         Endif
      Endif
   Wend
end sub

sub Go(dir,key,walkwait)
   VAR x,y, OldDir
   x=UO.GetX()
   y=UO.GetY()
   OldDir=UO.GetDir()
   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()
   Endif
   If x==UO.GetX() AND y==UO.GetY() AND OldDir<>UO.GetDir() Then
      UO.Press(key)
      wait(walkwait)
   Endif
   If x==UO.GetX() AND y==UO.GetY() Then
      CheckLag()
   Endif
   If x==UO.GetX() AND y==UO.GetY() Then
      UO.Print("Zasada!")
      return -1
   Else
      return 1
   Endif
end sub

sub CheckLag()
   UO.DeleteJournal()
   UO.Click('backpack')
   repeat
      wait(500)
   until UO.InJournal('cliloc# 0x9ED5')
end sub


Top
   
 Post subject:
PostPosted: 2006-09-20 12:32:10 
Offline

Joined: 2005-05-02 17:37:12
Posts: 46
Сильно не смотрел, но сразу скажу места где точно ошибка (точнее связано это стем что в на НОВЕ клилоки, а на ДРВ сообщения )

sub WaitForRecall()
var Text1="cliloc# 0xAB68" Тут заместо клиллока надо вставить сообщение ващего сервера

и в этом сабе

sub CheckLag()
UO.DeleteJournal()
UO.Click('backpack')
repeat
wait(500)
until UO.InJournal('cliloc# 0x9ED5') Тут также при клике на багпак, что говорит ваш серв
end sub

Либо если канал стабильный можно вообще вырезать данный саб и все упоминания на него


Top
   
 Post subject:
PostPosted: 2006-09-21 10:38:37 
Offline

Joined: 2006-08-09 20:33:57
Posts: 34
Chico wrote:
Сильно не смотрел, но сразу скажу места где точно ошибка (точнее связано это стем что в на НОВЕ клилоки, а на ДРВ сообщения )

sub WaitForRecall()
var Text1="cliloc# 0xAB68" Тут заместо клиллока надо вставить сообщение ващего сервера

и в этом сабе

sub CheckLag()
UO.DeleteJournal()
UO.Click('backpack')
repeat
wait(500)
until UO.InJournal('cliloc# 0x9ED5') Тут также при клике на багпак, что говорит ваш серв
end sub

Либо если канал стабильный можно вообще вырезать данный саб и все упоминания на него



Я вот тоже заметил, но уберал только в чеклаге, а тут var Text1="cliloc# 0xAB68" Тут заместо клиллока надо вставить сообщение ващего сервера на что поменять?


Top
   
 Post subject:
PostPosted: 2006-09-21 12:07:12 
Offline

Joined: 2006-08-09 20:33:57
Posts: 34
все кликлоки исправил! всеравно стоит и не телепортится


Top
   
 Post subject:
PostPosted: 2006-09-22 15:08:55 
Offline

Joined: 2006-08-09 20:33:57
Posts: 34
Люди ну что делать?! помогите плиз!! я не поверю что все своими ручками, днем и ночью скупают реги и бланки!!! Выложите плиз кто-нить рабочий скрипт или прешлите на Discond@yandex.ru


Top
   
 Post subject:
PostPosted: 2006-10-02 13:32:03 
Offline

Joined: 2006-08-09 20:33:57
Posts: 34
HELP!!! PLS!!! Хотяб скажите работает ли этот скрипт у кого-нить на ДРВ


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 6 posts ] 

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 4 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited