Yoko
http://forum.yoko.com.ua/

Пить бутылки с дисармом.
http://forum.yoko.com.ua/viewtopic.php?f=20&t=14035
Page 1 of 1

Author:  Jaraa [ 2008-10-05 18:21:42 ]
Post subject:  Пить бутылки с дисармом.

Рануо шард, для того чтобы выпить бутылку нужна пустая рука. В случае если на луке есть свойство "balanced" то лук снимать не нужно. Сейчас я использую такой скрипт, но он будет разоружать всегда.

Code:
sub curepot()
VAR t = 650
Var Empty=''
Var Bow='0x4017EC3D' ; id лука
UO.FindType('0x0F07','0x0000', 'my') ;type and color of potion
    if UO.FindCount()>0 then
       If not UO.ObjAtLayer( 'Rhand' ) == Empty then
                uo.unequip( "Rhand" )
                wait(t)
           endif
     UO.UseObject('finditem')
     wait(t)
     uo.equip("Rhand", Bow)
      else
        wait(100)
    endif
end sub


Допустим я таскаю с собой 5-6 луков, часть из них балансед и можно с ними в руках пить бутылки, а часть обычные и их надо сбрасывать.
Хотелось бы чтобы я изначально задал какие луки балансед и при проверке просто пил бутылки, а остальные луки сбрасывал.

Author:  Millerbeer [ 2008-10-05 19:00:15 ]
Post subject: 

Code:
sub curepot() 
VAR t = 650
var arm
Var Bow1='1111111';допустим этот лук балансед
Var Bow2='0x4017EC3D' ; обычный лук
var Bow3='2222222'; это допустим тож обычный лук
UO.FindType('0x0F07','0x0000', 'my') ;type and color of potion
    if UO.FindCount() then
       If UO.ObjAtLayer( 'Rhand' ) == Bow2 then
               arm =Bow2
                uo.unequip( "Rhand" )
                wait(t)
        endif
       If UO.ObjAtLayer( 'Rhand' ) == Bow3 then
               arm =Bow3
                uo.unequip( "Rhand" )
                wait(t)
        endif
     UO.UseObject('finditem')
     wait(t)
       If not UO.ObjAtLayer( 'Rhand' ) then
           uo.equip("Rhand", arm)
           wait(t) 
        endif
   endif
end sub
что непонятно, спрашивай

Author:  Jaraa [ 2008-10-05 23:59:38 ]
Post subject: 

Спасибо, а можно сделать меньше проверок какой лук у меня в руке?
Допустим у меня
bow1 обычный
bow2 обычный
bow3 обычный
bow4 балансед
bow5 балансед

1 проверка если руки вообще пустые (просто пьем)
2 в руках чтото есть, проверяем балансед ли
просто пьется бутылка
else (обычный)
запоминаем, сбрасываем, пьем, одеваем

Author:  Millerbeer [ 2008-10-06 06:43:51 ]
Post subject: 

Делать в точности как ты пожелал мне влом, можешь этим и сам заняться, прикручу просто проверку, чтоб юзал бутылки, если даж ничего в руках небыло, и непытался после этого взять лук.
Code:
sub curepot() 
VAR t = 650
var arm =0
Var Bow2='0x4017EC3D' ; обычный лук
var Bow3='2222222'; это допустим тож обычный лук
UO.FindType('0x0F07','0x0000', 'my') ;type and color of potion
    if UO.FindCount() then
       If UO.ObjAtLayer( 'Rhand' ) == Bow2 then
               arm =Bow2
                uo.unequip( "Rhand" )
                wait(t)
        endif
       If UO.ObjAtLayer( 'Rhand' ) == Bow3 then
               arm =Bow3
                uo.unequip( "Rhand" )
                wait(t)
        endif
     UO.UseObject('finditem')
     wait(t)
       If not UO.ObjAtLayer( 'Rhand' ) and arm then
           uo.equip("Rhand", arm)
           wait(t) 
        endif
   endif
end sub
Балансед луки ваще ненадо в скрипт забивать, они нам не интересны.

Author:  Jaraa [ 2008-10-06 07:28:21 ]
Post subject: 

Millerbeer wrote:
Балансед луки ваще ненадо в скрипт забивать, они нам не интересны.


Спасибо, теперь все стало достаточно просто =))

Author:  Millerbeer [ 2008-10-06 07:49:42 ]
Post subject: 

А ты думаешь твой алгоритм очень простой? :D У меня много условий, у тебя будет много процедур питья бутылок с ретурнами, мой вариант, я думаю, по компактней будет, тем более, мои условия можно все в одну строку запихнуть
Code:
sub curepot() 
VAR t = 650
var arm =0
Var Bow2='0x4017EC3D' ; обычный лук
var Bow3='2222222'; это допустим тож обычный лук
UO.FindType('0x0F07','0x0000', 'my') ;type and color of potion
    if UO.FindCount() then
       If UO.ObjAtLayer( 'Rhand' ) == Bow2  or UO.ObjAtLayer( 'Rhand' ) == Bow3 then
               arm = UO.ObjAtLayer( 'Rhand' )
                uo.unequip( "Rhand" )
                wait(t)
        endif
       
     UO.UseObject('finditem')
     wait(t)
       If not UO.ObjAtLayer( 'Rhand' ) and arm then
           uo.equip("Rhand", arm)
           wait(t) 
        endif
   endif
end sub

Author:  Millerbeer [ 2008-10-06 07:52:04 ]
Post subject: 

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

Author:  Jaraa [ 2008-10-06 08:12:45 ]
Post subject: 

Millerbeer wrote:
А ты думаешь твой алгоритм очень простой? :D


Я имел в виду, что твой алгоритм идеален для моих целей =)

Author:  Millerbeer [ 2008-10-06 08:15:36 ]
Post subject: 

Code:
sub curepot() 
VAR t = 650
var arm
Var Bow2='0x4017EC3D' ; балансед лук
var Bow3='2222222'; это тож балансед лук
UO.FindType('0x0F07','0x0000', 'my') ;type and color of potion
    if UO.FindCount() then
       If not UO.ObjAtLayer( 'Rhand' ) or UO.ObjAtLayer( 'Rhand' ) == Bow2  or UO.ObjAtLayer( 'Rhand' ) == Bow3 then
             UO.UseObject('finditem') 
                wait(t)
             return
        else
              arm= UO.ObjAtLayer( 'Rhand' )
              uo.unequip( "Rhand" )
              wait(t)
              UO.UseObject('finditem')
               wait(t) 
              uo.equip("Rhand", arm)
               wait(t) 
        endif
end sub
вот это твой вариант, впринципе, хороший, ибо универсальный.Теперь скрипт сработает с любым предметом в правой руке, хоть с вилкой

Page 1 of 1 All times are UTC+02:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/