Page 1 of 1

Проблема с убеганием :)

Posted: 2009-10-26 05:51:41
by 6aToH
Вообщем есть скрипт, он летает по рунам и там собирает перья, вместе с этим скриптом я запускаю скрипт рекол от других игроков вот скрипт:

Code: Select all

################# 
; Модуль сканирования.
sub Scan()
#################
uo.set('finddistance', '15')
  var i, j, Rser
  var time = uo.time()
  uo.ignore('self')
   var a1 = 'man'
   var a2 = 'woman'
   var a3 = 'ophidian warrior'
   var a4 = 'deamon'
   var a5 = 'dragon'
   var a6 = 'Quas' 
     Dim scan[5]
     scan[1] = '0x0190'   ; мужик
     scan[2] = '0x0191'   ; баба
     scan[3] = '0x0056'   ; орфидиан
     scan[4] = '0x0009'   ; демон
     scan[5] = '0x000C'   ; дракон
while not uo.dead()
    j = 0   
      for i = 1 to 5
        uo.findtype( scan[i], '-1', 'ground' )
          if uo.findcount() then         
               Rser = uo.getserial( 'finditem' )
               uo.textprint( time, 'Нападение! Id: ' , Rser, 'Имя: ' , uo.getname(Rser))
               j = 1                   
          endif
      next     
    if j == 1 or \
      uo.injournal( a1 ) or \
      uo.injournal( a2 ) or \
      uo.injournal( a3 ) or \
      uo.injournal( a4 ) or \
      uo.injournal( a5 ) or \
      uo.injournal( a6 )    \
    then
      uo.playwav('alarm.wav')   
      uo.print( 'Alarm!!!' )
      uo.exec('terminate Attack666')
      uo.exec('terminate Loot4')
      uo.exec('terminate peria')
      uo.exec('exec Teleportation')
      return 1
    else
      wait(2000)
    endif
wend
endsub

Но такая проблема: Например он прилетает на 3-ию руну, там видил игрока и улетает домой, все норм, но когда он начинает лететь по рунам заного, то по прилёту на 3 руну, он реколит опять домой, как будто видит кого то, хотя там никого нет! Помогите а???

Posted: 2009-10-26 08:46:46
by Mirage
забываешь стереть журнал. Реакция на сообщение идет.

Posted: 2009-10-26 10:26:04
by 6aToH
Mirage wrote:забываешь стереть журнал. Реакция на сообщение идет.

Code: Select all

################# 
; Модуль сканирования.
sub Scan()
#################
uo.set('finddistance', '15')
  var i, j, Rser
  var time = uo.time()
  uo.ignore('self')
   var a1 = 'man'
   var a2 = 'woman'
   var a3 = 'ophidian warrior'
   var a4 = 'deamon'
   var a5 = 'dragon'
   var a6 = 'Quas' 
     Dim scan[5]
     scan[1] = '0x0190'   ; мужик
     scan[2] = '0x0191'   ; баба
     scan[3] = '0x0056'   ; орфидиан
     scan[4] = '0x0009'   ; демон
     scan[5] = '0x000C'   ; дракон
[b]UO.DeleteJournal()[/b]
while not uo.dead()
    j = 0   
      for i = 1 to 5
        uo.findtype( scan[i], '-1', 'ground' )
          if uo.findcount() then         
               Rser = uo.getserial( 'finditem' )
               uo.textprint( time, 'Нападение! Id: ' , Rser, 'Имя: ' , uo.getname(Rser))
               j = 1                   
          endif
      next     
    if j == 1 or \
      uo.injournal( a1 ) or \
      uo.injournal( a2 ) or \
      uo.injournal( a3 ) or \
      uo.injournal( a4 ) or \
      uo.injournal( a5 ) or \
      uo.injournal( a6 )    \
    then
      uo.playwav('alarm.wav')   
      uo.print( 'Alarm!!!' )
      uo.exec('terminate Attack666')
      uo.exec('terminate Loot4')
      uo.exec('terminate peria')
      uo.exec('exec Teleportation')
      return 1
    else
      wait(2000)
    endif
wend
endsub

Так??? Если да, то не помогает (((

Posted: 2009-10-26 12:21:32
by Mirage

Code: Select all

#################
; Модуль сканирования.
sub Scan()
#################
uo.set('finddistance', '15')
  var i, j, Rser
  var time = uo.time()
  uo.ignore('self')
   var a1 = 'man'
   var a2 = 'woman'
   var a3 = 'ophidian warrior'
   var a4 = 'deamon'
   var a5 = 'dragon'
   var a6 = 'Quas'
     Dim scan[5]
     scan[1] = '0x0190'   ; мужик
     scan[2] = '0x0191'   ; баба
     scan[3] = '0x0056'   ; орфидиан
     scan[4] = '0x0009'   ; демон
     scan[5] = '0x000C'   ; дракон
UO.DeleteJournal()
while not uo.dead()
    j = 0   
      for i = 1 to 5
        uo.findtype( scan[i], '-1', 'ground' )
          if uo.findcount() then         
               Rser = uo.getserial( 'finditem' )
               uo.textprint( time, 'Нападение! Id: ' , Rser, 'Имя: ' , uo.getname(Rser))
               j = 1                   
          endif
      next     
    if j == 1 or \
      uo.injournal( a1 ) or \
      uo.injournal( a2 ) or \
      uo.injournal( a3 ) or \
      uo.injournal( a4 ) or \
      uo.injournal( a5 ) or \
      uo.injournal( a6 )    \
    then
UO.DeleteJournal()
      uo.playwav('alarm.wav')   
      uo.print( 'Alarm!!!' )
      uo.exec('terminate Attack666')
      uo.exec('terminate Loot4')
      uo.exec('terminate peria')
      uo.exec('exec Teleportation')
      return 1
    else
      wait(2000)
    endif
wend
endsub
чтото типо такого.

PS первый раз вижу конструкцию:

Code: Select all

    if j == 1 or \
      uo.injournal( a1 ) or \
      uo.injournal( a2 ) or \
      uo.injournal( a3 ) or \
      uo.injournal( a4 ) or \
      uo.injournal( a5 ) or \
      uo.injournal( a6 )    \
    then

Posted: 2009-10-26 14:31:37
by 6aToH
Не помогает ((( Все равно реколится домой как бешенный ((( в чем еще может проблема быть???

Posted: 2009-10-26 15:04:09
by Destruction
Мб TWI ?..

Если что-то непонятно как работает - во всем виновата галочка Track World Items..

Posted: 2009-10-26 15:35:06
by Mirage
А она то причем? Он же находит и улетает Значит проблема в другом.

PS а че так можно делать
uo.injournal( a4 ) or \
uo.injournal( a5 ) or \
?
Шибко оно меня смущает.

Posted: 2009-10-26 19:12:55
by GAUHAR

Code: Select all

uo.exec('exec Teleportation')
UO.Forget(Rser)
return 1

uo.forget(object) - Удаляет обьект object из памяти Injection.

Posted: 2009-10-26 19:41:41
by Destruction
Варианта проблемы два:
1. По не понятным причинам не срабатывает uo.deletejournal().
2. По понятным причинам Injection не забывает найденный объект.

Мне второй вариант больше нравится и он напрямую связан с TWI.

GAUHAR, молодец - правильно понял мою мысль. Только uo.forget глючная штука, которая непонятно как работает.. Когда-то пытался решить с её помощью какую-то проблему, в прочем - не успешно.

Mirage, viewtopic.php?t=805

Posted: 2009-10-26 22:05:53
by Nmy
Инжа бывает глючит, ей кажется что объект, которого там уже нет, все еще там. Ищет игрока на полу и находит, но его там нет. Может ресенд поможет или без вариантов ре-лог.

Posted: 2009-10-27 01:25:30
by 6aToH
Destruction wrote:Варианта проблемы два:
1. По не понятным причинам не срабатывает uo.deletejournal().
2. По понятным причинам Injection не забывает найденный объект.

Мне второй вариант больше нравится и он напрямую связан с TWI.

GAUHAR, молодец - правильно понял мою мысль. Только uo.forget глючная штука, которая непонятно как работает.. Когда-то пытался решить с её помощью какую-то проблему, в прочем - не успешно.

Mirage, viewtopic.php?t=805

Так если uo.forget глючит, то как справиться с этой проблемой???

Posted: 2009-10-27 01:34:14
by Destruction
Это проблема инжекта, а не скрипта.

Posted: 2009-10-27 06:18:23
by 6aToH
Nmy wrote:Инжа бывает глючит, ей кажется что объект, которого там уже нет, все еще там. Ищет игрока на полу и находит, но его там нет. Может ресенд поможет или без вариантов ре-лог.

Обясни поподробнее пожалйста что такое ре-лоГ?

Posted: 2009-10-27 11:30:58
by Nmy
6aToH wrote:
Nmy wrote:Инжа бывает глючит, ей кажется что объект, которого там уже нет, все еще там. Ищет игрока на полу и находит, но его там нет. Может ресенд поможет или без вариантов ре-лог.

Обясни поподробнее пожалйста что такое ре-лоГ?

Когда нажмешь LOG OUT и заходишь заново.

Posted: 2009-10-27 14:17:02
by 6aToH
Nmy wrote:
6aToH wrote:
Nmy wrote:Инжа бывает глючит, ей кажется что объект, которого там уже нет, все еще там. Ищет игрока на полу и находит, но его там нет. Может ресенд поможет или без вариантов ре-лог.

Обясни поподробнее пожалйста что такое ре-лоГ?

Когда нажмешь LOG OUT и заходишь заново.

Подскажи какой командой можно выходить из уо?? Я знаю UO.CLOSE, но он тогда полностью закрывает инжу, если я не ошибаюсь!