Page 1 of 1
Взять в руки\убрать с рук книгу
Posted: 2013-06-27 20:51:12
by CxC
Нарисовал скрипт:
Code: Select all
Sub main()
var Book = '0x0EFA'
if (uo.GetGraphic(uo.ObjAtLayer('Rhand')) <> Book) then
uo.equip('Rhand','0x403E08F0')
end if
...............
Если в руках оружие, то чар не берет книгу, а просто его скидывает. Если в руках нет ничего - берет книгу. Как умно исправить?
Был вариант
Code: Select all
Sub main()
var Book = '0x0EFA'
if (uo.GetGraphic(uo.ObjAtLayer('Rhand')) <> Book) then
uo.unequip('Rhand')
uo.equip('Rhand','0x403E08F0')
end if
...............
не работает, только если поставить задержку в 400, что неприемлемо
Re: Взять в руки\убрать с рук книгу
Posted: 2013-06-27 20:59:42
by Incorrect User
Без задержки никак. Только ее можно сократить до минимума
Code: Select all
Sub main()
var Book = "0x0EFA"
if (uo.GetGraphic(uo.ObjAtLayer('Rhand')) <> Book) then
uo.unequip('Rhand')
repeat
wait(10)
until uo.GetGraphic(uo.ObjAtLayer('Rhand') == ""
uo.equip('Rhand','0x403E08F0')
end if
end sub
Re: Взять в руки\убрать с рук книгу
Posted: 2013-06-27 21:12:59
by Incorrect User
Даже, если подумать, uo.GetGraphic(uo.ObjAtLayer('Rhand')) <> Book если в руках ничего нет то тоже будет это условие и он будет выполнять uo.unequip('Rhand') В этом случае нужно
Code: Select all
Sub main()
var Book = "0x0EFA"
if uo.GetGraphic(uo.ObjAtLayer('Rhand') <> Book and uo.GetGraphic(uo.ObjAtLayer('Rhand') <> "" then
uo.unequip('Rhand')
repeat
wait(10)
until uo.GetGraphic(uo.ObjAtLayer('Rhand') == ""
end if
uo.equip('Rhand','0x403E08F0')
end if
end sub
[/quote]
Re: Взять в руки\убрать с рук книгу
Posted: 2013-06-27 21:36:05
by CxC
спасибо. Обидно, что нет быстрого анэквипа
Re: Взять в руки\убрать с рук книгу
Posted: 2013-06-27 22:46:05
by Mirage
Вообще достаточно открыть help и переписать
правильно (

) команду:
Code: Select all
sub book()
uo.Equipt('Rhand',Book)
end sub
Сдергивает оружие и одевает книгу.
Если одет нубилук то вот так будет выглядеть:
Code: Select all
var Book = "0x0EFA"
sub main()
var x = uo.GetGraphic(uo.ObjAtLayer('Lhand'))
var y = uo.GetGraphic(uo.ObjAtLayer('Rhand'))
if x <> '' then
uo.unequip('Lhand')
repeat
wait(100)
until x<>''
end if
if y <> Book then
uo.unequip('Rhand')
repeat
wait(100)
until y<>''
uo.Equipt('Rhand',Book)
end if
end sub
Задержка 300 минимальна для перемещения предметов на 56 сфере. Это вшито в сервере и не обойти.
Re: Взять в руки\убрать с рук книгу
Posted: 2013-06-28 12:04:21
by CxC
Mirage wrote:Задержка 300 минимальна для перемещения предметов на 56 сфере. Это вшито в сервере и не обойти.
с задержкой не вариант

всем спасибо