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

Взять в руки\убрать с рук книгу
http://forum.yoko.com.ua/viewtopic.php?f=20&t=17271
Page 1 of 1

Author:  CxC [ 2013-06-27 20:51:12 ]
Post subject:  Взять в руки\убрать с рук книгу

Нарисовал скрипт:
Code:
Sub main()
   var Book = '0x0EFA'
   if (uo.GetGraphic(uo.ObjAtLayer('Rhand')) <> Book) then
      uo.equip('Rhand','0x403E08F0')
   end if
...............


Если в руках оружие, то чар не берет книгу, а просто его скидывает. Если в руках нет ничего - берет книгу. Как умно исправить?
Был вариант
Code:
Sub main()
   var Book = '0x0EFA'
   if (uo.GetGraphic(uo.ObjAtLayer('Rhand')) <> Book) then
      uo.unequip('Rhand')
      uo.equip('Rhand','0x403E08F0')
   end if
...............

не работает, только если поставить задержку в 400, что неприемлемо

Author:  Incorrect User [ 2013-06-27 20:59:42 ]
Post subject:  Re: Взять в руки\убрать с рук книгу

Без задержки никак. Только ее можно сократить до минимума
Code:
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

Author:  Incorrect User [ 2013-06-27 21:12:59 ]
Post subject:  Re: Взять в руки\убрать с рук книгу

Даже, если подумать, uo.GetGraphic(uo.ObjAtLayer('Rhand')) <> Book если в руках ничего нет то тоже будет это условие и он будет выполнять uo.unequip('Rhand') В этом случае нужно
Code:
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]

Author:  CxC [ 2013-06-27 21:36:05 ]
Post subject:  Re: Взять в руки\убрать с рук книгу

спасибо. Обидно, что нет быстрого анэквипа

Author:  Mirage [ 2013-06-27 22:46:05 ]
Post subject:  Re: Взять в руки\убрать с рук книгу

Вообще достаточно открыть help и переписать правильно ( :wink: ) команду:
Code:
sub book() 
  uo.Equipt('Rhand',Book)
end sub

Сдергивает оружие и одевает книгу.
Если одет нубилук то вот так будет выглядеть:

Code:
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 сфере. Это вшито в сервере и не обойти.

Author:  CxC [ 2013-06-28 12:04:21 ]
Post subject:  Re: Взять в руки\убрать с рук книгу

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

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

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