Рануо шард, для того чтобы выпить бутылку нужна пустая рука. В случае если на луке есть свойство "balanced" то лук снимать не нужно. Сейчас я использую такой скрипт, но он будет разоружать всегда.
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 луков, часть из них балансед и можно с ними в руках пить бутылки, а часть обычные и их надо сбрасывать.
Хотелось бы чтобы я изначально задал какие луки балансед и при проверке просто пил бутылки, а остальные луки сбрасывал.
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
Спасибо, а можно сделать меньше проверок какой лук у меня в руке?
Допустим у меня
bow1 обычный
bow2 обычный
bow3 обычный
bow4 балансед
bow5 балансед
1 проверка если руки вообще пустые (просто пьем)
2 в руках чтото есть, проверяем балансед ли
просто пьется бутылка
else (обычный)
запоминаем, сбрасываем, пьем, одеваем
Делать в точности как ты пожелал мне влом, можешь этим и сам заняться, прикручу просто проверку, чтоб юзал бутылки, если даж ничего в руках небыло, и непытался после этого взять лук.
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
Балансед луки ваще ненадо в скрипт забивать, они нам не интересны.
А ты думаешь твой алгоритм очень простой? У меня много условий, у тебя будет много процедур питья бутылок с ретурнами, мой вариант, я думаю, по компактней будет, тем более, мои условия можно все в одну строку запихнуть
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
then естественно в конец верхней строки надо приписать, я просто теги или управляющего символа незнаю, чтоб строка непереносилась.
Если у чара в руках будет балансед лук и ты запустишь мой скрипт, он его просто незаметит и выпьет бутылку.
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
вот это твой вариант, впринципе, хороший, ибо универсальный.Теперь скрипт сработает с любым предметом в правой руке, хоть с вилкой