Суббота, 18.05.2024, 19:05
[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
  • Мини-чат
    Главная » Статьи » Мои статьи

    Скрипт на шафты
    #####################################################################
    ; Bowcraft. v.1.03b © Edred
    ;
    ; Чар берет из сундука логи, крафтит из них шафты
    ; и складывает эти шафты в этот же сундук.
    ; Если логи закончились - выход.
    ; Если даггер (или что вы там используете) сломался -
    ; скрипт найдет аналогичный по типу в бэкпаке и возьмет
    ; в руки.
    ;
    ; 1.03b: Проверка, если Kolvo = 1, то берем три и кладем обратно два
    ; лога.
    ;
    sub bowcraft()
    VAR Sunduk = '0x403C3758' ; Сериал сундука
    VAR Logi = '0x1BDD' ; Тип логов
    VAR Shafts = '0x1BD4' ; Тип шафтов
    VAR Kolvo = 1 ; Брать логов для одного крафта
    VAR k = 0, j, dagger
    dagger = UO.ObjAtLayer( 'Rhand' )
    UO.SetGlobal( 'instrtype', UO.GetGraphic( dagger ) )
    While TRUE
    UO.FindType( Logi, -1, Sunduk ) ; Ищем логи в сундуке
    If UO.FindCount() == 0 Then
    UO.Print("Logs not found, script terminated")
    return
    else
    j = UO.GetQuantity( 'finditem' )
    If j > Kolvo Then
    UO.Print( 'I can use ' + str( j ) + ' logs' )
    else
    UO.Print( "I can't use " + str( j ) + " logs" )
    return
    Endif
    Endif
    If Kolvo == 1 Then
    ; v. 1.03
    UO.Grab( '3', 'finditem' )
    wait(500)
    UO.FindType( Logi )
    UO.MoveItem( 'finditem', '2', Sunduk )
    wait(500)
    Else
    UO.Grab( Str( Kolvo ), 'finditem' )
    wait(500)
    Endif
    ; А это - динамическая пауза на мув
    while UO.Count( Logi ) < Kolvo
    wait(100)
    wend
    ; проверка на то, что в руках по-прежнему даггер
    If CheckInstr() == 0 Then
    UO.Print("You don't have daggers!" )
    return
    Endif
    UO.DeleteJournal()
    UO.CancelMenu()
    UO.WaitMenu ('What do you want to carve', 'shaft' )
    UO.WaitTargetType( Logi )
    UO.UseObject( dagger )
    k = 0
    while NOT UO.InJournal('You put') AND NOT UO.InJournal('fail') AND ( k < 50 )
    k = k + 1
    wait(300)
    wend
    If UO.Count( Shafts ) > 0 then
    UO.FindType( Shafts, -1, -1 )
    UO.MoveItem( 'finditem', 0, Sunduk )
    wait(500)
    while UO.Count( Shafts ) > 0
    wait(100)
    wend
    UO.Print( 'Shafts moved' )
    Endif
    Wend
    end sub

    Sub CheckInstr()
    ; проверим, есть ли в правой руке инструмент того же
    ; типа, что и в глобальной переменной instrtype
    ; если нет - найдем в бэкпаке такой инструмент и
    ; возьмем в правую руку.
    VAR typ = UO.GetGlobal( 'instrtype' )
    VAR cur = UO.GetGraphic( UO.ObjAtLayer( 'Rhand' ) )
    If typ == cur Then
    return 1
    Endif
    UO.FindType( typ )
    If UO.FindCount() == 0 Then
    return 0
    Endif
    UO.Equip( 'RHand' , 'finditem' )
    wait(1000)
    return 1
    endsub

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

    Статистика

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