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

Пропуск
http://forum.yoko.com.ua/viewtopic.php?f=17&t=17111
Page 1 of 1

Author:  tylllkah [ 2012-11-23 00:46:37 ]
Post subject:  Пропуск

Как сделать так, чтоб чар при открытии двери не пытался её открыть если она открыта и закрыть если она закрыта
Code:
sub open door()
go(0001,0001, 0)
go(0002,0002, 0)
go(0003,0003, 0)
opendoor()
wait(100)
go(0004,0004, 0)
closedoor()
wait(100)
go(0005,0005, 0)
go(0004,0004, 0)
opendoor()
wait(100)
go(0003,0003, 0)
closedoor()
wait(100)
go(0002,0002, 0)
go(0001,0001, 0)
end sub


sub opendoor()
   var n
   Dim Door[30]
   Door[1]='0x085A'
   Door[2]='0x06A5'
   Door[3]='0x0854'
   for n=1 to 3
      if uo.countground(Door[n]) then
         uo.usefromground(Door[n])
      endif
   next
endsub
sub closedoor()
   var n
   Dim Door[30]
   Door[1]='0x085B'
   Door[2]='0x06A6'
   Door[3]='0x0855'
   
   for n=1 to 3
      if uo.countground(Door[n]) then
         uo.usefromground(Door[n])
      endif
   next
endsub

Author:  Mirage [ 2012-11-23 07:49:22 ]
Post subject:  Re: Пропуск

Использовать не по ID а по типу предмет.
У открытых дверей тип отличается от закрытых, а ID сохраняется.

Author:  tylllkah [ 2012-11-23 10:39:18 ]
Post subject:  Re: Пропуск

Mirage wrote:
Использовать не по ID а по типу предмет.
У открытых дверей тип отличается от закрытых, а ID сохраняется.

стоп, дело в дверях, если она открыта он пытается ее открыть, как сделать так чтоб если она открыта он продолжал бежать дальше

Author:  Mirage [ 2012-11-23 10:55:27 ]
Post subject:  Re: Пропуск

Ну у тебя в принципе правильно, но во первых нет пауз после действия - чар не успевает среагировать. Во вторых я делал примерно вот так.

Code:
Sub OpenGate()
   var n
   Dim Door[3]
   Door[1]='0x085A'
   Door[2]='0x06A5'
   Door[3]='0x0854'
   uo.Set('finddistance', 1)
   for n=1 to 3
      UO.FindType(Door[n],'-1','ground')
      if UO.FindCount('finditem') > 0 then
         UO.UseObject('finditem')
         wait(100)
      endif
   next
end sub


Потому что такая связка будет использовать именно найденную дверь.
А связка
if uo.countground(Door[n]) then
uo.usefromground(Door[n])
не взаимосвязана. Если рядом будет 2 двери одного типа то он может найти одну а пытаться открыть другую => зациклится.

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