Среда, 11.03.2026, 11:00
[nIrVaNa]
Приветствую Вас Призывник | RSS

Меню сайта
Ultima Online
  • Ultima Online DRW
  • .::Games::.
  • EVE Online
  • Russia EVE-RU
  • Ukrainian EVE-UA
  • [6OP3bIE CAHTEXHuru] EVE
  • L2Europa.com
  • Clan Viktoria L2Europa.com
  • Мини-чат
    Главная » Статьи » Мои статьи

    Скрипт на vandor buy
    ######
    #Opisanie
    ######
    #Чар летает по 2 рунбукам к вендорам если вендор далеко
    #подходит к нему и покупает товар.
    #Как закупился у всех летит домой и скидывает
    #все купленное в сэйф перезаряжает рунбуки хавает и опять 25
    ######
    #Nastroika
    ######
    #у чара в паке 3 рунбуки (люблю я рунбуки), в сэйфе у дома
    #еда(фишстэйки),реколы(побольше). В уо делаем список товара
    #который надо покупать(как это делать смотрим чуть ниже) список
    #называем list1, в переменных указываем типы покупаемых
    #товаров (у меня в скрипте подразумевается что товаров всего 4)
    #можно летать только по первой рунбуке для этого в переменных
    #нада переменную skokonada изменить на 1
    ##### ОБЯЗАТЕЛЬНО!!!!#########
    #в игре набираем следущее-" ,set buydelay 1000 "(без ковычек)
    #в настройках инжекта ставим галку на trackworlditems
    ##########################
    #Как сделать список покупки
    ##########################
    #1-подходи к вендору
    #2-в настройках инжекта(закладка Main) жмем кнопку Buy/Sell
    #3-в поле Name пишем list1 жмем Create
    #4-в игре говорим вендору buy
    #5-идем опять в инжект и в окне Shoping list выбираем товар и жмем
    #Add можно сразу добавить несколько товаров
    #6-далее жмем Done и еще раз Done
    ##########################
    #!! 1 и 2 рунбуки забиты рунами к вендорам в 3 рунбуке первая руна
    #домой
    #каждой руне соответствует вендор=>надо вбить ид вендоров
    #в соответствии с рунами
    #!!! введите ВСЕ переменные
    #######
    #GimFlex aka Question
    #######
    #Peremennue
    #######
    var book1='0x40318452' # ID рунбук 1-ая
    var book2='0x40318452' # ...2-ая
    var book3='0x40127980' # ...3-яя
    var type1='0x175D'# соответствует типу покупаемого товара
    var type2='0x1F03'# ...
    var type3='0x175D'# ...
    var type4='0x175D'# ...
    var recall='0x1F4C' # тип рекола
    var unloadseif='0x4044211D' # ID сэйфа у дома
    var tEat='0x097B' # тип еды(фиш стэйки)
    var skokonada=0 # 0 -летаем по двум рунбукам; 1 -только по первой
    ##ВВедите ид вендоров ниже###
    sub POGNALI()
    var k,j,b
    DIM ven[9]
    DIM vem[9]
    #####################
    ven[0]='0x00286C87' #И для 1-ой руны первой рунбуки
    ven[1]='0x00289D44' #Д для 2-ой руны первой рунбуки
    ven[2]='0x00164D2E' #
    ven[3]='0x0030D2DB' # для 1-ой рунбуки
    ven[4]='0x0041A5F3' #В
    ven[5]='0x00286C87' #Е
    ven[6]='0x00286C87' #Н
    ven[7]='0x00286C87' #Д
    ven[8]='0x00286C87' #О для 9-ой руны 1 рунбуки
    ##################
    vem[0]='0x00286C87' #Р для 1-ой руны 2 рунбуки
    vem[1]='0x00289D44' #О
    vem[2]='0x00164D2E' #В
    vem[3]='0x0030D2DB' #
    vem[4]='0x0041A5F3' # для 2-ой рунбуки
    vem[5]='0x00286C87' #
    vem[6]='0x00286C87' #
    vem[7]='0x00286C87' #
    vem[8]='0x00286C87' # для 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)
    recharg(book1)
    wait(2000)
    recharg(book2)
    wait(2000)
    recharg(book3)
    wait(2000)
    ToEat()
    wait(2000)
    unload()
    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'
    ven=UO.GetName(imya)
    uo.buy('list1',ven)
    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 recharg(kniga)
    CheckLag()
    wait(1000)
    uo.useobject(unloadseif)
    CheckLag()
    wait(1000)
    uo.findtype(recall,'-1',unloadseif)
    CheckLag()
    wait(1000)
    uo.moveitem('finditem','9','backpack')
    CheckLag()
    wait(1000)
    uo.UseObject(kniga)
    CheckLag()
    wait(1000)
    uo.Lclick(296,91)
    CheckLag()
    wait(1000)
    endsub

    sub unload()
    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(recall, '-1', 'backpack')
    while UO.GetQuantity('finditem') > 0
    UO.MoveItem('finditem','-1',unloadseif)
    CheckLag()
    Wait(700)
    UO.FindType(recall,'-1','backpack')
    wend
    endsub

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

    sub ToEat()
    UO.UseObject(unloadseif)
    CheckLag()
    wait(500)
    UO.FindType(tEat,'0x0000',unloadseif)
    CheckLag()
    wait(500)
    if UO.FindCount() > 0 then
    UO.MoveItem('finditem','20','backpack')
    end if
    repeat
    CheckLag()
    uo.UseType(tEat)
    while not uo.InJournal("can't") and not uo.InJournal('full') and not uo.InJournal('stuffed') and not uo.InJournal('hungry') and not uo.InJournal('satiated') and not UO.Dead()
    wait(100)
    wend
    until uo.InJournal('too full') or UO.Dead()
    UO.FindType(tEat, '0x0000','backpack')
    if UO.FindCount() > 0 then
    UO.MoveItem('finditem','20',unloadseif)
    end if
    end sub

    Категория: Мои статьи | Добавил: Shofana (30.11.2008)
    Просмотров: 1368 | Рейтинг: 0.0/0
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]

    Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Наш опрос
    Как Вам наш сайт
    Всего ответов: 244
    Copyright MyCorp © 2026