Page 1 of 1

Два вопроса.

Posted: 2008-10-16 12:43:27
by UmniK
Добрый день. Вот наболело, накипело и т.д. помогите пожалуйста рабобраться.

Вопрос номер один: Чем отличаются между собой
UO.Life
UO.L
UO.H
и как мне поставить в скрипте проверку на наличие в бэкпаке банок рефреша???

Ну и вопрос номер два, посложней:

У меня есть скрипт на хил:

Code: Select all

sub hilka() 
   While UO.Life > 0
      If UO.Life < 105Then
         UO.Bandageself()
           repeat
             If UO.InJournal("cliloc# 0x2CF7")Then
                 UO.Print ('MORTAL')
                   wait(2500)
                    UO.Bandageself()   
                       repeat 
                          wait(100)
                       until UO.InJournal("cliloc# 0xA4E9")or UO.InJournal("cliloc# 0xA4E8")or UO.InJournal("cliloc# 0x2CF8")or UO.InJournal("cliloc# 0xA4DB")or UO.InJournal("cliloc# 0x2D47") 
                    wait(100)
                  uo.usetype('0x0f0c')
              else
                wait(100)
              Endif
            until UO.InJournal("cliloc# 0xA4E9")or UO.InJournal("cliloc# 0xA4E8")or UO.InJournal("cliloc# 0x2CF8")or UO.InJournal("cliloc# 0x55C8")or UO.InJournal("cliloc# 0xA4DB")or UO.InJournal("cliloc# 0x2D47")
          uo.deletejournal("cliloc# 0xA4E9")
         wait(100)
      Else
         wait(50)
      Endif
   Wend
end sub



Скрипт по ПвП, в нем вот этот участок отвечает за отхил чара после получения аблки "мортал страйк"

Code: Select all

 If UO.InJournal("cliloc# 0x2CF7")Then
                 UO.Print ('MORTAL')
                  wait(2500)  // ожидание перед наложением бинтов
                    UO.Bandageself()   
                       repeat 
                          wait(100)
                       until UO.InJournal("cliloc# 0xA4E9")or UO.InJournal("cliloc# 0xA4E8")or UO.InJournal("cliloc# 0x2CF8")or UO.InJournal("cliloc# 0xA4DB")or UO.InJournal("cliloc# 0x2D47") 
                    wait(100)
                  uo.usetype('0x0f0c')
              else
                wait(100)
              Endif


вот собственно строку wait(2500) мне надо заменить.

Code: Select all

 UO.Print ('MORTAL')
 wait(2500)  // ожидание перед наложением бинтов
 UO.Bandageself()   


Необходимо что бы в этот момент время ожидания высчитывалось по формуле:
время ожидания=/6,5 секунд/-/11 - (Dexterity / 20)/
где дестери каждый раз разное.
Возможно ли такое реализовать?
Заранее спасибо :)

Re: Два вопроса.

Posted: 2008-10-16 14:41:10
by Jaraa
UmniK wrote:и как мне поставить в скрипте проверку на наличие в бэкпаке банок рефреша???


Code: Select all

UO.FindType('0x0F0B','0x0000', 'my') ;type and color of potion
    if UO.FindCount()>0 then
            UO.UseObject('finditem')
      else
        wait(100)
    endif


UmniK wrote:вот собственно строку wait(2500) мне надо заменить.

Code: Select all

 UO.Print ('MORTAL')
 wait(2500)  // ожидание перед наложением бинтов
 UO.Bandageself()   


Необходимо что бы в этот момент время ожидания высчитывалось по формуле:
время ожидания=/6,5 секунд/-/11 - (Dexterity / 20)/
где дестери каждый раз разное.
Возможно ли такое реализовать?
Заранее спасибо :)


Вообще то в твоем скрипте строка wait(2500) ожидает когда пройдет мортал чтоб бинт лег как раз после того как пройдет. По твоей формуле при 120 дексы надо ждать -0,5 сек (то есть не ждать), а при 80 дексы 0,5 сек. Ниже 80 редко когда декс опускается можно этот вариант вообще не рассматривать. Поэтому ты можешь тупо уменьшеить время ожидания до 0,5 сек.
wait(500)

Re: Два вопроса.

Posted: 2008-10-16 15:28:14
by UmniK
за стамину спасибо :)

Jaraa wrote:время ожидания=/6,5 секунд/-/11 - (Dexterity / 20)/

Вообще то в твоем скрипте строка wait(2500) ожидает когда пройдет мортал чтоб бинт лег как раз после того как пройдет. По твоей формуле при 120 дексы надо ждать -0,5 сек (то есть не ждать), а при 80 дексы 0,5 сек. Ниже 80 редко когда декс опускается можно этот вариант вообще не рассматривать. Поэтому ты можешь тупо уменьшеить время ожидания до 0,5 сек.
wait(500)


ммм... время ожидания=6,5-(11-120/20)=6,5-(11-6)=6,5-5=1,5 секунды
при дексы 150
время ожидания=6,5-(11-150/20)=6,5-(11-7,5)=6,5-3,5=3 секунды.

вот именно в этот разбег в полторы секунды и спеваешь получить второй мортал :)

Posted: 2008-10-16 16:18:46
by $!@m
а в чем проблема написать в формуле UO.Dex?

Posted: 2008-10-16 16:44:49
by UmniK
$!@m wrote:а в чем проблема написать в формуле UO.Dex?


Разве можно применять строку?
Wait(6500-((11-UO.Dex/20)*1000))

думаю инжа меня пошлеть :oops:

P.S. Невероятно, но факт, инжа схавала эту строчку :shock: :shock: :shock: :roll: . Всем спасибо :lol: