Надо разобраться с сообщениями

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
Slider
Posts: 9
Joined: 2004-08-11 08:32:39
Contact:

Надо разобраться с сообщениями

Post by Slider »

в общем есть такой скрипт:

sub minround()
VAR Kirka = '0x0E85' ; Тип Кирки
VAR MaxVes = 815 ; Максимальный вес, подымаемый чаром минус 10-15 стоунов
VAR TileNum = '1339' ; Тайл пола пещеры (наиболее распространенный тип)
VAR x, y, t, k
VAR MaxTime = 100 ; измеряется в 1/10 сек.
VAR ms1 = "There is"
VAR ms2 = "You can't use"
VAR ms3 = "You put the"
VAR ms4 = "You fail to find any useable ore"
VAR ms5 = "You are too far away"
VAR ms6 = "Try mining"
VAR ms7 = "You can't"

for y=-2 to 2
for x=-2 to 2
k = 0
repeat
UO.DeleteJournal()
t = UO.Timer()
k = k + 1
UO.CancelTarget()
wait(900)
UO.WaitTargetTile( TileNum, STR( UO.GetX() + x ), STR( UO.GetY() + y ), 0)
UO.UseType( Kirka )
repeat
wait(300)
until UO.InJournal(ms1) OR UO.InJournal(ms2) OR UO.InJournal(ms3) OR UO.InJournal(ms4) OR UO.InJournal(ms5) OR UO.InJournal(ms6) OR UO.InJournal(ms7) OR UO.InJournal('You put') OR ((t + MaxTime) < UO.Timer())
If UO.Weight > MaxVes Then
; Вес превышен!
UO.Print(" Overweight!" )
return
Endif
until ( NOT UO.InJournal(ms4) AND NOT UO.InJournal(ms3) OR (k > 10) )

next
next
uo.print('Скрипт закончен')
endsub

при неудачной попытке выкопать руду( над чаром появляется сообщение You loosen some rocks but fail to find any useable ore) скрипт продолжает копать дальше хотя руда есть там ещё....
что можна сделать?
Lord Ruslan Nightmare
Expert!
Posts: 359
Joined: 2004-04-25 11:11:07
Contact:

Post by Lord Ruslan Nightmare »

юзай тэг code для поста скриптов более чем 5-и строк в длинну. Потому что лично я даже не могу читать длинную неформатированную программу, не то что ошибки там искать...

Code: Select all

sub minround() 
  VAR Kirka = '0x0E85' ; Тип Кирки
  VAR MaxVes = 815 ; Максимальный вес, подымаемый чаром минус 10-  15 стоунов
  VAR TileNum = '1339' ; Тайл пола пещеры (наиболее   распространенный тип)
  VAR x, y, t, k
  VAR MaxTime = 100 ; измеряется в 1/10 сек.
  VAR ms1 = "There is"
  VAR ms2 = "You can't use"
  VAR ms3 = "You put the"
  VAR ms4 = "fail to find any useable ore";<- ошибка была тут. Сообщение начинается как You loosen, а не как You fail
  VAR ms5 = "You are too far away"
  VAR ms6 = "Try mining"
  VAR ms7 = "You can't"

  for y=-2 to 2
    for x=-2 to 2
      k = 0
      repeat
        UO.DeleteJournal()
        t = UO.Timer()
        k = k + 1
        UO.CancelTarget()
        wait(900)
        UO.WaitTargetTile( TileNum, STR( UO.GetX() + x ), STR( UO.GetY() + y ), 0)
        UO.UseType( Kirka )
        repeat
          wait(300)
        until UO.InJournal(ms1) OR UO.InJournal(ms2) OR UO.InJournal(ms3) OR UO.InJournal(ms4) OR UO.InJournal(ms5) OR UO.InJournal(ms6) OR UO.InJournal(ms7) OR UO.InJournal('You put') OR ((t + MaxTime) < UO.Timer())
        If UO.Weight > MaxVes Then
          ; Вес превышен!
          UO.Print(" Overweight!" )
          return
        Endif
      until ( NOT UO.InJournal(ms4) AND NOT UO.InJournal(ms3) OR (k > 10) )
    next
  next
  uo.print('Скрипт закончен')
endsub
Без труда не выловишь и рыбку из пруда,
А без пруда не выловишь её и с трудом...
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

Lord Ruslan Nightmare wrote:юзай тэг code для поста скриптов более чем 5-и строк в длинну. Потому что лично я даже не могу читать длинную неформатированную программу, не то что ошибки там искать...

Code: Select all

sub minround() 
  VAR Kirka = '0x0E85' ; Тип Кирки
  VAR MaxVes = 815 ; Максимальный вес, подымаемый чаром минус 10-  15 стоунов
  VAR TileNum = '1339' ; Тайл пола пещеры (наиболее   распространенный тип)
  VAR x, y, t, k
  VAR MaxTime = 100 ; измеряется в 1/10 сек.
  VAR ms1 = "There is"
  VAR ms2 = "You can't use"
  VAR ms3 = "You put the"
  VAR ms4 = "fail to find any useable ore";<- ошибка была тут. Сообщение начинается как You loosen, а не как You fail
  VAR ms5 = "You are too far away"
  VAR ms6 = "Try mining"
  VAR ms7 = "You can't"

  for y=-2 to 2
    for x=-2 to 2
      k = 0
      repeat
        UO.DeleteJournal()
        t = UO.Timer()
        k = k + 1
        UO.CancelTarget()
        wait(900)
        UO.WaitTargetTile( TileNum, STR( UO.GetX() + x ), STR( UO.GetY() + y ), 0)
        UO.UseType( Kirka )
        repeat
          wait(300)
        until UO.InJournal(ms1) OR UO.InJournal(ms2) OR UO.InJournal(ms3) OR UO.InJournal(ms4) OR UO.InJournal(ms5) OR UO.InJournal(ms6) OR UO.InJournal(ms7) OR UO.InJournal('You put') OR ((t + MaxTime) < UO.Timer())
        If UO.Weight > MaxVes Then
          ; Вес превышен!
          UO.Print(" Overweight!" )
          return
        Endif
      until ( NOT UO.InJournal(ms4) AND NOT UO.InJournal(ms3) OR (k > 10) )
    next
  next
  uo.print('Скрипт закончен')
endsub


Ты неправ. Там можно же только часть мессаги указывать, именно так и было сделано. У него же выскакивает "You loosen some rocks but fail to find any useable ore". Скрипт древний, но он работал стабильно (это на самом деле функция большого скрипта, я ее в свое время просто вырубил для кого-то). Тут что-то другое...
Post Reply