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

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
Tergos
Posts: 52
Joined: 2005-06-12 09:14:09
Location: Moscow, Russia
Contact:

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

Post 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
Solaire
Posts: 163
Joined: 2005-05-21 07:12:12
Location: DRW

Post by Solaire »

Странный какой-то while. Должно быть, скорее всего, так:

while not uo.Dead() and not UO.SkillVal('Tinkering')==1000
Askaneli
Sphere expert
Posts: 1143
Joined: 2004-10-01 08:27:38
Location: Уфа

Post 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
Сделал дело - флуди смело !!!
Tergos
Posts: 52
Joined: 2005-06-12 09:14:09
Location: Moscow, Russia
Contact:

Post by Tergos »

Эмм... А по пунктам? Чтоб на будущее таких ошибок не допускать...
Askaneli
Sphere expert
Posts: 1143
Joined: 2004-10-01 08:27:38
Location: Уфа

Post by Askaneli »

Tergos wrote:Эмм... А по пунктам? Чтоб на будущее таких ошибок не допускать...

Grab заменил на MoveItem ибо так посовременее.
Задержки увеличил на перемещение итемов, ибо ты слишком быстро всё пытался делать.
Проверку на лаги и ВС поставил перед перемещением итемов.
Сделал дело - флуди смело !!!
Tergos
Posts: 52
Joined: 2005-06-12 09:14:09
Location: Moscow, Russia
Contact:

Post by Tergos »

А из-за чего мог виснуть?
flake
Expert!
Posts: 746
Joined: 2004-08-11 23:56:17
Location: The Citadel
Contact:

Post by flake »

Из-за слишком малых задержок после Мувов.
Post Reply