Взять в руки\убрать с рук книгу

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
CxC
Posts: 93
Joined: 2012-12-31 00:17:09

Взять в руки\убрать с рук книгу

Post 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, что неприемлемо
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

Re: Взять в руки\убрать с рук книгу

Post 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
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

Re: Взять в руки\убрать с рук книгу

Post 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]
CxC
Posts: 93
Joined: 2012-12-31 00:17:09

Re: Взять в руки\убрать с рук книгу

Post by CxC »

спасибо. Обидно, что нет быстрого анэквипа
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Взять в руки\убрать с рук книгу

Post by Mirage »

Вообще достаточно открыть help и переписать правильно ( :wink: ) команду:

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 сфере. Это вшито в сервере и не обойти.
CxC
Posts: 93
Joined: 2012-12-31 00:17:09

Re: Взять в руки\убрать с рук книгу

Post by CxC »

Mirage wrote:Задержка 300 минимальна для перемещения предметов на 56 сфере. Это вшито в сервере и не обойти.

с задержкой не вариант :) всем спасибо
Post Reply