Пойзон

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
Boris
Posts: 24
Joined: 2005-06-18 15:55:25

Пойзон

Post by Boris »

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

Code: Select all

sub Poison()
    var strela =
    var binti =
    var blbinti =
    var butpus =
    var butjad =
    var sklad =
   while UO.SkillVal( 'Poisoning' ) < 100
    
      UO.FindType( strela, -1, 1 )
           UO.Grab( '1', 'finditem' )
      wait( 2000 )
      UO.FindType( butjad, -1, 1 )
      If UO.FindCount() == 0 Then
             UO.Print("Bottle of Poison not found")
             return
           Endif
############################################################################
#Сюда надо вставить скрипт чтобы чар начинал бутлкой яда пойзонить 1-ую стрелу
#переложенную перед этим на пол(или в бекпак без разницы), в случае удачного запойзонивания
# надо чтобы чара сварил новую бутылку яда а дальше бы пошла проверка хп и перекладыания стрелы...
# если же неудачно то чтобы пойзонил снова стрелу
###############################################################################




   if UO.Life < 80 then
     If UO.Count( binti ) < 20 Then
            UO.Findtype( blbinti )
            If UO.FindCount() > 0 Then
               UO.MoveItem( 'finditem', 0, Sklad )
               wait(1000)
               CheckLag()
            Endif
            UO.Findtype( bandag, -1, Sklad )
            If UO.FindCount() > 0 Then
               UO.Grab( '100', 'finditem' )
               wait(1000)
               CheckLag()
            Endif
     Endif
    While UO.Life < 100
       UO.Bandageself()
            wait(4000)
            CheckLag()
         Wend
   Endif
         wait(2000)
   wend
        wait(50)
endsub
   
Sub CheckLag()
   DeleteJournal( 'backpack' )
   UO.Click( 'backpack' )
   repeat
      wait(100)
   until UO.InJournal( 'backpack' )
endsub
I'm
Expert!
Posts: 1396
Joined: 2004-10-15 22:38:04
Location: Moscow City.
Contact:

Post by I'm »

Code: Select all

while UO.SkillVal( 'Poisoning' ) < 100 

Если ты так намерен качатс до гыма то не 100 а 1000 И если значение реал от нериала различно то так

Code: Select all

while UO.SkillVal('Poisoning',1)<1000 

Должен признатся дальше несмотрел.

Хм а скрипт эдреда непробовал вроде по запросу чем-то похоже?
http://yoko.netroof.net/forum/viewtopic.php?t=704
Boris
Posts: 24
Joined: 2005-06-18 15:55:25

Post by Boris »

I'm wrote:Хм а скрипт эдреда непробовал вроде по запросу чем-то похоже?
http://yoko.netroof.net/forum/viewtopic.php?t=704

он у него похож, но там нет функции чтобы варил бутылку пойзона, у него они уже готовы
I'm
Expert!
Posts: 1396
Joined: 2004-10-15 22:38:04
Location: Moscow City.
Contact:

Post by I'm »

Boris wrote:он у него похож, но там нет функции чтобы варил бутылку пойзона, у него они уже готовы

А ты добавь и выложи тут :wink:
Boris
Posts: 24
Joined: 2005-06-18 15:55:25

Post by Boris »

I'm wrote:
Boris wrote:он у него похож, но там нет функции чтобы варил бутылку пойзона, у него они уже готовы

А ты добавь и выложи тут :wink:

ну ладно завтра попробую что нить сделать
I'm
Expert!
Posts: 1396
Joined: 2004-10-15 22:38:04
Location: Moscow City.
Contact:

Post by I'm »

А мы тебе поможем малек :wink:
Boris
Posts: 24
Joined: 2005-06-18 15:55:25

Post by Boris »

I'm wrote:А мы тебе поможем малек :wink:

вот сделал что смог, подскажите что не так, или что можно исправить. В ходе написания скрипта появилась токо один вопрос, он указан в тексте самого кода, помогите плиз :-)

Code: Select all

sub Poison()
    var strela = '0x0F3F'
    var stupka =
    var NS = '0x0F88'
    var binti = '0x0E21'
    var blbinti = '0x0E20'
    var butpus = '0x0F0E'
    var butjad =
    var sklad =
    var ms1 = 'Select a poison potion'
    UO.Exec('set finddistance 2')
   while UO.SkillVal( 'Poisoning' ) < 1000
           CheckLag()
      UO.FindType( strela, -1, 1 )         ;ищем стрелу на полу     
           UO.Grab( '1', 'finditem' )   
      wait(1000)
      UO.FindType('butjad')                ;ищем бутылку яда       
           UO.DeleteJournal()
           CheckLag()
              repeat                 
                  UO.useskill('Poisoning', 'butjad')   ;начинаем пойзонить (для этого сначала надо заюзать скил пойзон, потом укзаать на бутылку яда
                    repeat                             ; а потом указать что будем пойзонить
                     wait(100)
                    until UO.InJournal('ms1')
                  UO.WaitTargetType('strela')
                   repeat
                    wait(100)
############################################################
           until UO.Count(strela)==1       ; пойзоним до тех пор пока в бек паке не окаджется хотя бы одна стрела запойзоненная
вот с эти есть небольшая проблема, я не знаю как сделать чтобы он пойзонил до тех пор пока в бекпаке не окажется хотя бы одна запойзоненная стрела,  пробовал делать по типу но он оказался один и тот же как у запойзоненной так и простой  в журнале в случае удачного пойзона нет ни одной надписи. Вообщем я в затруднеении
###############################################################################
           CheckLag()
           UO.FindType( otravstrela, -1, 'backpack' )
           UO.MoveItem( 'finditem', 0, sklad )         ; перекладываем запойзоненую стрелу в сумку
           wait(1000)
        while UO.Count(butjad) < 4            ;смотри кол-во яда в бекпаке, если меньше 4 то варим
               UO.FindType( NS, -1, 1 )
               UO.WaitTargetType(NS)
               UO.Usetype('stupka')
               wait(200)
               UO.WaitMenu('What','Greater_Poison')
                 repeat
                  wait(100)
                 until UO.Count(butjad) == 4           ; до тех пор пока кол-во яда не будет равно 4
             wend
          CheckLag()
         if UO.Life < 80 then                        ; смотрим на хиты, если <80 проверяем не кончились ли бинты
     If UO.Count( binti ) < 20 Then
            UO.Findtype( blbinti )
            If UO.FindCount() > 0 Then
               UO.MoveItem( 'finditem', 0, Sklad )
               wait(1000)
               CheckLag()
            Endif
            UO.Findtype( bandag, -1, Sklad )
            If UO.FindCount() > 0 Then
               UO.Grab( '100', 'finditem' )
               wait(1000)
               CheckLag()
            Endif
     Endif
    While UO.Life < 100
       UO.Bandageself()
            wait(4000)
            CheckLag()
         Wend
   Endif
      wend
endsub
   
Sub CheckLag()
   DeleteJournal( 'backpack' )
   UO.Click( 'backpack' )
   repeat
      wait(100)
   until UO.InJournal( 'backpack' )
endsub
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

ты лутше расскажи как ты сам определяешь что стрела отравлена? наличном опыте?;)
пойзонинг всегда удачный? а если есть не удача то есть ли какоето сообщение??? полюбому должна быть инфа...
I'm
Expert!
Posts: 1396
Joined: 2004-10-15 22:38:04
Location: Moscow City.
Contact:

Post by I'm »

Ну еще очень хочется узнать что за шард :?:
Boris добро пожаловать в личку :wink:
Boris
Posts: 24
Joined: 2005-06-18 15:55:25

Post by Boris »

Grin wrote:ты лутше расскажи как ты сам определяешь что стрела отравлена? наличном опыте?;)
пойзонинг всегда удачный? а если есть не удача то есть ли какоето сообщение??? полюбому должна быть инфа...

если она отрвлена то просто меняет цвет с простого на зеленый, и на ней пишеться не просто arrow a зщшыщт arrow, пойзонит с физлами есть два варианта физла:
1 просто физланет
2 еще и себя отравит, при этом надписи разные
I'm
Expert!
Posts: 1396
Joined: 2004-10-15 22:38:04
Location: Moscow City.
Contact:

Post by I'm »

Code: Select all

uo.findtype("type","color","where")
Boris
Posts: 24
Joined: 2005-06-18 15:55:25

Post by Boris »

Вообщем такая проблема, после выбора яда не находится стрела на полу и следовательно скрипт сбивает
пс суть такова: сначала находим в мешке стрелы, перетаскиваем на пол 1 стрелу, юзаем скил пойзон прицелом показываем на бутылку яда, потом прицелом показываем на стрелу, в случае удачного пойзона перекладываем запойзоненную стрелу из бекпака в мешок на полу. Далее смотрим скоко осталось бутылок пойзона, если меньше 4 то начинаем варить их до тех пор пока их не станет 4. Далее смотри не уменьшилось ли у нас хп если нет то все начинаем заново

Code: Select all

sub Poison() 
    var strela = '0x0F3F'
    var stupka = '0x4D914CF3'
    var NS = '0x0F88'
    var binti = '0x0E21'
    var blbinti = '0x0E20'
    var butpus = '0x0F0E'
    var butjad = '0x0F0A'
    var sklad = '0x525AED3F'
    var sklad1 = '0x4D1E3814'
    var ms1 = 'Select a poison potion'
    UO.Exec('set finddistance 2')
   while UO.SkillVal( 'Poisoning' ) < 1000
       CheckLag()
      UO.FindType( 'strela', '0x0044', 'sklad' )         ;ищем стрелу в сумке     
       uo.moveitem ( 'finditem', '1', 'ground')
       UO.print('Nawli strelu i kinuli na pol')
      wait(1000)
      UO.FindType('butjad')                ;ищем бутылку яда       
      UO.print('Nawli Jad')
           UO.DeleteJournal()
           CheckLag()
        repeat
                  UO.FindType('0x0F0A', '0x0000', 'backpack' )
                  wait(100)
                  UO.useskill('Poisoning', 'finditem')       ;начинаем пойзонить (для этого сначала надо заюзать скил пойзон, потом укзаать на бутылку яда
                    repeat                             ; а потом указать что будем пойзонить
                     wait(100)
#################################################################
# В этом месте почему не начинается пойзонить стрелу
#                   until UO.InJournal('Select an item.')
                  uo.waittargetground( 'finditem' )
                  UO.FindType('strela', '0x0044', 'ground' )
                  wait(100)
                ;  uo.waittargetground( 'finditem' )
                  UO.print('poisonim strelu')
                 repeat
                    wait(100)
                 until UO.Count(strela)==1       ; пойзоним до тех пор пока в бек паке не окаджется хотя бы одна стрела запойзоненная
               until UO.Count(strela)==1 
           CheckLag()
           UO.FindType( 'strela', '0x0044', 'backpack' )
           UO.MoveItem( 'finditem', '0', 'sklad1' )         ; перекладываем запойзоненую стрелу в сумку со стрелами
           wait(1000)
        while UO.Count(butjad) < 4            ;смотри кол-во яда в бекпаке, если меньше 4 то варим
               UO.FindType( 'NS', '-1', 'sklad' )
               UO.WaitTargetType(NS)
               UO.Usetype('stupka')
               wait(200)
               uo.automenu('Select a potion to make','Greater_Poison')
                 repeat
                  wait(100)
                 until UO.Count(butjad) == 4           ; до тех пор пока кол-во яда не будет равно 4
             wend
          CheckLag()
         if UO.Life < 80 then                        ; смотрим на хиты, если <80 проверяем не кончились ли бинты
     If UO.Count( binti ) < 20 Then
            UO.Findtype( 'blbinti' )
            If UO.FindCount() > 0 Then
               UO.MoveItem( 'finditem', '0', 'Sklad' )
               wait(1000)
               CheckLag()
            Endif
            UO.Findtype( 'binti', '-1', 'Sklad' )
            If UO.FindCount() > 0 Then
               UO.Grab( '100', 'finditem' )
               wait(1000)
               CheckLag()
            Endif
     Endif
    While UO.Life < 100
       UO.Bandageself()
              repeat
                wait(100)
              until UO.InJournal('You have cured your patient completely') and  UO.InJournal('You place a bloody bandage in your backpack')
            CheckLag()
         Wend
   Endif
      wend
endsub
   
Sub CheckLag()
   UO.DeleteJournal()
   UO.Click( 'backpack' )
   repeat
      wait(100)
   until UO.InJournal( 'backpack' )
endsub
Post Reply