Пропуск

Ask for scripts here

Moderators: Murderator+, Murderator

Post Reply
tylllkah
Posts: 243
Joined: 2012-03-20 00:32:06
Location: РФ, г. Москва

Пропуск

Post by tylllkah »

Как сделать так, чтоб чар при открытии двери не пытался её открыть если она открыта и закрыть если она закрыта

Code: Select all

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
Не быть жадным - уже богатство, не быть расточительным – доход.
TylllKaH
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Пропуск

Post by Mirage »

Использовать не по ID а по типу предмет.
У открытых дверей тип отличается от закрытых, а ID сохраняется.
tylllkah
Posts: 243
Joined: 2012-03-20 00:32:06
Location: РФ, г. Москва

Re: Пропуск

Post by tylllkah »

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

стоп, дело в дверях, если она открыта он пытается ее открыть, как сделать так чтоб если она открыта он продолжал бежать дальше
Не быть жадным - уже богатство, не быть расточительным – доход.
TylllKaH
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Пропуск

Post by Mirage »

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

Code: Select all

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 двери одного типа то он может найти одну а пытаться открыть другую => зациклится.
Post Reply