Page 3 of 3

Posted: 2006-10-28 17:39:45
by Scripts Writer
"Как не надо писать скрипты..." Выпуск №2.
Переменную n обозначать не надо?!

Code: Select all

sub port(n,book) 
var oldX=UO.GetX()
var oldY=UO.GetY()
var time
NoTarget()
UO.UseObject(book)
FastLootCheck()
CheckLag()
UO.LClick(135, n*15+55)
time=UO.Timer()
Repeat
wait(500)
Until oldX<>UO.GetX() OR oldY<>UO.GetY() OR time+200<UO.Timer()
end sub



Этот отрывок конечно тоже сказка.

Code: Select all

sub unload() 
UO.SetReceivingContainer(meshok)
uo.useobject (meshok)
UO.FindType(reg,'-1','backpack')
while UO.FindCount()>0
  UO.Grab(UO.GetQuantity('finditem'),'finditem')
  UO.FindType(reg,'-1','backpack')
  wait(600)
  UO.FindType(reg1,'-1','backpack')
  while UO.FindCount()>0
    UO.Grab(UO.GetQuantity('finditem'),'finditem')
    UO.FindType(reg1,'-1','backpack')
    wait(600)

    UO.FindType(reg2,'-1','backpack')
    while UO.FindCount()>0
      UO.Grab(UO.GetQuantity('finditem'),'finditem')
      UO.FindType(reg2,'-1','backpack')
      wait(600)

      UO.FindType(reg3,'-1','backpack')
      while UO.FindCount()>0
        UO.Grab(UO.GetQuantity('finditem'),'finditem')
        UO.FindType(reg3,'-1','backpack')
        wait(600)
end sub


Обозначенная в скрипте переменная p ,с присвоенным ей значением -ID контейнера. С ней тоже всё впорядке? Разве ковычки здесь не нужны?

Code: Select all

p=uo.getserial('finditem') 
UO.FindType(blank,'-1',seifydoma)
while UO.GetQuantity('finditem') >0
UO.MoveItem('finditem','1',p)

Posted: 2006-10-28 18:28:54
by Nmy
такие скрипты улыбают как хорошый анекдот :lol:

мне понравилось чтоб скинуть в мешок, надо иго открыть...
да и действия очень даже логичные...

Posted: 2006-10-28 20:21:11
by GimFlex
омг сказал же кому надо наведет красоту поднял из архивов по просьбевам бы лишь критиковать и писать епты анекдот и всекая другая чухня а просто выложить свой скрипт человеку не судьба так что нет что бпопосту трезвонить языком лучшеб переписали с мануалом и красотой и выложи ли бы большеб толку было бы

Posted: 2006-10-28 20:40:21
by No***Name
Question wrote:выложил на первой страничке сами разбирайтесь и пишите мануалы и красоту наводите


А то му кто смертный и не шарет в скриптах) что предлогаеш
з.ы я тоде могу сякую треш на форум кидать((

Posted: 2006-10-28 21:11:56
by GimFlex
No***Name wrote:
Question wrote:выложил на первой страничке сами разбирайтесь и пишите мануалы и красоту наводите


А то му кто смертный и не шарет в скриптах) что предлогаеш
з.ы я тоде могу сякую треш на форум кидать((


у меня и этот пашет на ура а для меня это главное :wink:

Posted: 2006-10-28 21:54:06
by Scripts Writer
Улыбнуло

Posted: 2006-10-28 22:00:54
by GimFlex
You Must Die wrote:Улыбнуло


меня тоже :arrow:

Posted: 2007-01-02 14:01:19
by ~KR@FT~
Парни,самый первый мэмэдж написаный в это посте сожердит скрипт,юзающий 3 рунбуки сразу! Я видел вариант,где можно отключать одной переменной,НО у меня так ничего и не заработало! Можете ли вы переделать этот скрипт под одну рунбуку!
Летает,скупает,домой в сейф скидывает и снова.. Заранее спасибо!

Posted: 2008-12-11 20:57:20
by DEMONP
Это робочий скрипт проверил сам на DRW, мне его друг подправил, и ешё спосиба розроботчику за него.

Code: Select all

######
#Opisanie
######
#Чар летает по 2 рунбукам к вендорам если вендор далеко
#подходит к нему и покупает товар.
#Как закупился у всех летит домой и скидывает
#все купленное в сэйф перезаряжает рунбуки хавает и опять 25
######
#Nastroika
######
#у чара в паке 3 рунбуки (люблю я рунбуки), в сэйфе у дома
#еда(фишстэйки),реколы(побольше). В уо делаем список товара
#который надо покупать(как это делать смотрим чуть ниже) список
#называем list1, в переменных указываем типы покупаемых
#товаров (у меня в скрипте подразумевается что товаров всего 5)
#можно летать только по первой рунбуке для этого в переменных
#нада переменную skokonada изменить на 1
##### ОБЯЗАТЕЛЬНО!!!!#########
#в игре набираем следущее-" ,set buydelay 3000 "(без ковычек)
#в настройках инжекта ставим галку на trackworlditems
##########################
#Как сделать список покупки
##########################
#1-подходи к вендору
#2-в настройках инжекта(закладка Main) жмем кнопку Buy/Sell
#3-в поле Name пишем list1 жмем Create
#4-в игре говорим вендору buy
#5-идем опять в инжект и в окне Shoping list выбираем товар и жмем
#Add можно сразу добавить несколько товаров
#6-далее жмем Done и еще раз Done
##########################
#!! 1 и 2 рунбуки забиты рунами к вендорам в 3 рунбуке первая руна
#домой
#каждой руне соответствует вендор=>надо вбить ид вендоров
#в соответствии с рунами
#!!! введите ВСЕ переменные
#######
#from Question  with smile
#######
#Peremennue
#######
var book1='0x401411b2' # ID рунбук 1-ая
var book2='0x40318452' # ...2-ая
var book3='0x402d28cb' # ...3-яя
var type1='0x0F86'# соответствует типу покупаемого товара
var type2='0x0F88'# ...
var type3='0x0f7a'# ...
var type4='0x0f7b'# ...
var type5='0x0e34'# ...
var recall='0x1F4C' # тип рекола
var unloadseif='0x404a5287' # ID сэйфа у дома
var skokonada=1 # 0 -летаем по двум рунбукам; 1 -только по первой
var Whtime = 960 ;сколько ждать сек после разгрузки.
##ВВедите ид вендоров ниже###
sub POGNALI()
var k,j,b
 DIM ven[9]
 DIM vem[9]
#####################
 ven[0]='0x002b54a0' #И Br1 для руны первой рунбуки  Постоянно менять
 ven[1]='0x000144bf' #Д Br2 для руны первой рунбуки  Постоянно менять
 ven[2]='0x00543bba' # Br3   Постоянно менять
 ven[3]='0x002f0633' # Br4 для 1-ой рунбуки
 ven[4]='0x002031dd' #В SJ
 ven[5]='0x0054a832' #Е Minoc Постоянно менять
 ven[6]='0x0024b7a2' #Н Trinsic Тоже менять
 ven[7]='0x005142db' #Д Vesp1
 ven[8]='0x001c9de3' #О Vesp2 для 9-ой руны 1 рунбуки
 ##################
 vem[0]='0x001ca642' #Р для 1-ой руны 2 рунбуки
 vem[1]='0x001d612e' #О
 vem[2]='0x000764b3' #В
 vem[3]='0x003c3d60' #
 vem[4]='0x000fdcb6' #  для 2-ой рунбуки
 vem[5]='0x0031ea54' #
 vem[6]='0x000b0c08' #
 vem[7]='0x0021ce0b' #
 vem[8]='0x00454a8d' # для 9-ой руны 2 рунбуки
#####################
  while not uo.dead()
   for k=1 to 9
    repeat
     port(k,book1)
     uo.resend()
     b=UO.GetDistance(ven[k-1])
     while b>1
      SuperWalk(0,0,ven[k-1])
      b=UO.GetDistance(ven[k-1])
     wend
     bustreevseh1(ven[k-1])
     UO.Say("bye")
    next
   if skokonada==0 then
   for j=1 to 9
    repeat
     port(j,book2)
     uo.resend()
     b=UO.GetDistance(vem[j-1])
     while b>1
      SuperWalk(0,0,vem[j-1])
      b=UO.GetDistance(vem[j-1])
     wend
     bustreevseh1(vem[j-1])
     UO.Say("bye")
    next
    endif
    port(1,book3)
    wait(2000)
    unload()
    wait(2000)
  wend
endsub

sub port(n,book)
var oldX=UO.GetX()
var oldY=UO.GetY()
var time
   NoTarget()
   UO.UseObject(book)
   FastLootCheck()
   CheckLag()
   UO.LClick(135, n*15+55)
   time=UO.Timer()
   Repeat
     wait(500)
   Until oldX<>UO.GetX() OR oldY<>UO.GetY() OR time+200<UO.Timer()
end sub

sub FastLootCheck()
   UO.DeleteJournal()
   wait(600)
   if UO.InJournal("FastLoot") OR UO.InJournal("World save") then
      CheckLag()
   endif
end sub

sub NoTarget()
   if UO.Waiting() then
      UO.CancelTarget()
   endif
end sub

sub bustreevseh1(imya)
var vend, ven='vendor'
   UO.Set('buydelay','1875')  #для закупки 10 предметов у одного вендора.
   ven=UO.GetName(imya)
   uo.buy('list1',ven)
   wait(4000)  #необходимая пауза чтобы завершить закупку, чуть больше чем в 'buydelay'.
endsub

#==============================================================
#  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]

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



sub unload()
       var Wtime = 1
         UO.FindType(type1, '-1', 'backpack')
       while UO.GetQuantity('finditem') > 0
         UO.MoveItem('finditem','-1',unloadseif)
         CheckLag()
         Wait(700)
         UO.FindType(type1,'-1','backpack')
       wend
         UO.FindType(type2, '-1', 'backpack')
       while UO.GetQuantity('finditem') > 0
         UO.MoveItem('finditem','-1',unloadseif)
         CheckLag()
         Wait(700)
         UO.FindType(type2,'-1','backpack')
       wend
         UO.FindType(type3, '-1', 'backpack')
       while UO.GetQuantity('finditem') > 0
         UO.MoveItem('finditem','-1',unloadseif)
         CheckLag()
         Wait(700)
         UO.FindType(type3,'-1','backpack')
       wend
         UO.FindType(type4, '-1', 'backpack')
       while UO.GetQuantity('finditem') > 0
         UO.MoveItem('finditem','-1',unloadseif)
         CheckLag()
         Wait(700)
         UO.FindType(type4,'-1','backpack')
       wend
         UO.FindType(type5, '-1', 'backpack')
       while UO.GetQuantity('finditem') > 0
         UO.MoveItem('finditem','-1',unloadseif)
         CheckLag()
         Wait(700)
         UO.FindType(type5,'-1','backpack')
       wend
         UO.FindType(recall, '-1', 'backpack')
       while UO.GetQuantity('finditem') > 0
         UO.MoveItem('finditem','-1',unloadseif)
         CheckLag()
         Wait(700)
         UO.FindType(recall,'-1','backpack')
       wend
UO.Print('Ждем '+str(Whtime)+ ' секунд.')
Wtime = Whtime
wait(1000)
while Wtime > 0
wait(1000)
Wtime = Wtime - 1
UO.Print('Осталось '+str(Wtime)+ ' секунд.')
wend
if Wtime == 0 then
Wtime = Whtime
end if
endsub

sub CheckLag()
uo.DeleteJournal()
uo.Click('backpack')
repeat
wait(50)
until UO.InJournal('backpack')
endsub

Posted: 2009-01-17 16:28:12
by Abruzzi
Здрасте. А можно ли в этот скрипт вставить Hiding / чтобы после разгруки чар становился в хайд и стоял так мин 15. Пасиб.
______________________________________________________
При отсчёте времени иногда выжаёт ошибку - Unhandled exception in Parser.Чем это может быть вызванно!? Версия инжы - 703.11 Pawn.

Или может быть есть у кого скрипт полутше?

Posted: 2009-01-20 00:51:13
by Abruzzi
Встроил я хайд. Не так уж это и сложно было оказывается.

Posted: 2009-04-28 07:02:07
by Greidon[Gods]
подскажите, а можно ли сделать что бы прилетев по рунбуке чар обошел 3х венов, а потом полетел дальше? как это можно сделать...