Page 1 of 1

Что-то не так со скриптом на тинкеринг.

Posted: 2005-06-17 07:14:38
by Tergos
Вот этот скрипт время от времени выдает ошибку парсера и повисает. При попытке перезапустить выполнение скрипта - та же ошибка. Помогает только перезапуск инжекта. Что тут не так?

Code: Select all

sub Tinkering()

uo.exec('addobject sunduk')
while uo.targeting()
  wait(100)
wend
while not uo.Dead() or UO.SkillVal('Tinkering')==1000
  uo.FindType('0x1BF2','0x0000','backpack')
  if uo.GetQuantity('finditem')<=10 then
    uo.FindType('0x0F0E','0x0000','backpack')
    if uo.GetQuantity('finditem')>25 then
      uo.SetReceivingContainer('sunduk')
      wait(100)
      uo.Grab('all','finditem')
      wait(100)
      uo.UnSetReceivingContainer()
    end if
    uo.FindType('0x1BF2','0x0000','sunduk')
    wait(100)
    uo.Grab('100','finditem')
    wait(100)
  end if
  CheckLag()
  uo.Waitmenu('Tinkering','Tools','Tools','empty bottle (2 Iron Ingot)')
  uo.UseType('0x1EBC')
  while not uo.InJournal("You put") and not uo.InJournal("failed")
    wait(300)
  wend
wend
end sub

Sub CheckLag()
uo.DeleteJournal()
uo.Click('backpack')
repeat
  wait(50)
until uo.InJournal('backpack')
end sub

Posted: 2005-06-17 07:41:56
by Solaire
Странный какой-то while. Должно быть, скорее всего, так:

while not uo.Dead() and not UO.SkillVal('Tinkering')==1000

Posted: 2005-06-17 08:18:09
by Askaneli

Code: Select all

sub Tinkering() 

uo.exec('addobject sunduk')
while uo.targeting()
  wait(100)
wend
while not uo.Dead() or UO.SkillVal('Tinkering',1)<1000
  uo.FindType('0x1BF2','0x0000','backpack')
  wait(100)
  if uo.GetQuantity('finditem')<=10 then
    uo.FindType('0x0F0E','0x0000','backpack')
    wait(100)
    if uo.GetQuantity('finditem')>25 then
      CheckLag()
      uo.moveitem('finditem','-1','sunduk')
      wait(700)
    end if
    uo.FindType('0x1BF2','0x0000','sunduk')
    wait(100)
    CheckLag()
    uo.moveitem('finditem','100','backpack')
    wait(700)
  end if
  CheckLag()
  uo.Waitmenu('Tinkering','Tools','Tools','empty bottle (2 Iron Ingot)')
  uo.UseType('0x1EBC')
  while not uo.InJournal("You put") and not uo.InJournal("failed")
    wait(300)
  wend
wend
end sub

Sub CheckLag()
uo.DeleteJournal()
uo.Click('backpack')
repeat
  wait(50)
until uo.InJournal('backpack')
end sub

Posted: 2005-06-17 11:45:18
by Tergos
Эмм... А по пунктам? Чтоб на будущее таких ошибок не допускать...

Posted: 2005-06-17 13:22:20
by Askaneli
Tergos wrote:Эмм... А по пунктам? Чтоб на будущее таких ошибок не допускать...

Grab заменил на MoveItem ибо так посовременее.
Задержки увеличил на перемещение итемов, ибо ты слишком быстро всё пытался делать.
Проверку на лаги и ВС поставил перед перемещением итемов.

Posted: 2005-06-17 20:46:50
by Tergos
А из-за чего мог виснуть?

Posted: 2005-06-17 21:05:38
by flake
Из-за слишком малых задержок после Мувов.