unhandled exception in parcer;parse error;abnormal program t

General Injection issues

Moderators: Murderator+, Murderator

J17
Posts: 69
Joined: 2005-01-16 13:44:08
Location: Moscow
Contact:

unhandled exception in parcer;parse error;abnormal program t

Post by J17 »

Проблема:
unhandled exception in parcer; parse error in line XXXX; abnormal program termiation.

У меня есть несколько сложных, но очень отлаженных скриптов.
Но регулярно во время работы скриптов появляется одно из сообщений, что я написал выше, и клиент выснет. Причем, parse error показывает совершенно случайный номер строки - может показать, например, номер 937, когда в скрипте только 700 строк. Синтаксических ошибок в скриптах нет - 100%.

Приходится снимать задачу - client.exe - и запускать заново.

Повторяется на любой машине. Версия инжекта 501.?? (4VI). Клиент 2.0.3.

P.S. Заметил такую закономерность - если комп меньше загружен, то скрипт сможет проработать дольше. Если запустить сразу несколько клиентов, то инжект слетает за 15 минут... :(

Что это такое? Встречался ли кто-нибудь с чем-то подобным? Может, что-то настроить можно?
MazaFaka
Posts: 77
Joined: 2005-02-22 20:03:13

Post by MazaFaka »

у меня было такое !
када в команде sayu писались русские слова
и када в скрипт состоял из нескольких функций одна из которых порождала саму себя
говорила мне мама "учись неуч"
J17
Posts: 69
Joined: 2005-01-16 13:44:08
Location: Moscow
Contact:

Post by J17 »

MazaFaka wrote:и када в скрипт состоял из нескольких функций одна из которых порождала саму себя

В смысле рекурсивный вызов?
Хм... рекурсия в этих скриптах и вправду есть... А никто не подскажет, какова у инжекта глубина стека функций? Может, Yoko отпостит?
Yoko
Site Admin
Posts: 1964
Joined: 2004-04-03 16:49:38
Contact:

Post by Yoko »

официально автор скриптового модуля заявил, что любая, пока есть память.
лично я не рискую использовать рекурсию в своих скриптах, стабильность и так низкая.
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

DalamarDword6567614D wrote:
MazaFaka wrote:и када в скрипт состоял из нескольких функций одна из которых порождала саму себя

В смысле рекурсивный вызов?
Хм... рекурсия в этих скриптах и вправду есть... А никто не подскажет, какова у инжекта глубина стека функций? Может, Yoko отпостит?


100-150 вызовов без проблем.

А вообще рекомендую взять инжект 312.19 и потестировать эти скрипты на нем (если, конечно, в скриптах не задействованы новые команды). По моим наблюдениям стабильность гораздо выше.
J17
Posts: 69
Joined: 2005-01-16 13:44:08
Location: Moscow
Contact:

Post by J17 »

был код

Code: Select all

if UO.GetDir() == 0 then
    ...
    return
endif
if UO.GetDir() == 1 then
    ...
    return
endif
if UO.GetDir() == 2 then
    ...
    return
endif
if UO.GetDir() == 3 then
    ...
    return
endif
if UO.GetDir() == 4 then
    ...
    return
endif
if UO.GetDir() == 5 then
    ...
    return
endif
if UO.GetDir() == 6 then
    ...
    return
endif
if UO.GetDir() == 7 then
    ...
    return
endif


Заменил на

Code: Select all

var d = UO.GetDir()
if d == 0 then
    ...
endif
if d == 1 then
    ...
endif
if d == 2 then
    ...
endif
if d == 3 then
    ...
endif
if d == 4 then
    ...
endif
if d == 5 then
    ...
endif
if d == 6 then
    ...
endif
if d == 7 then
    ...
endif
return


И слетать стало НА ПОРЯДОК реже! Раньше скрипт работал полчаса-час и слетал, а теперь может иногда больше суток работать... Версию инжекта не менял.
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

В первом случае он опрашивает UO.Dir() восемь раз, в втором - 1 раз. То что нестабильность нового инжекта в первую очередь связана с новым алгоритмом расчета движения (или что-то такое), давно уже известно.
J17
Posts: 69
Joined: 2005-01-16 13:44:08
Location: Moscow
Contact:

Post by J17 »

Что это за алгоритм рассчета движения?.. Что он рассчитывает? В инжекте же нету встроенной ходилки...
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

J17 wrote:Что это за алгоритм рассчета движения?.. Что он рассчитывает? В инжекте же нету встроенной ходилки...


Есть ее зачатки. В виде команд на движение Addstep и Adddir. Которые как раз и появились в версиях 4.х.х. И именно тогда и начались проблемы с step warning failure и устойчивостью.

Кстати, еще одна вещь выплыла буквально только что - если в скрипт часто посылает ловушки прицелов на тайлы или статику (мининг например, ламбер) и у тебя быстрый комп - то стоит перед командой установки ловушки прицела и после нее поставить маленькие паузы - 50-100 мс, весьма пользительно для устойчивости инжекта. Причем ловушки прицела как инжекта, так и АСМа.
Askaneli
Sphere expert
Posts: 1143
Joined: 2004-10-01 08:27:38
Location: Уфа

Post by Askaneli »

Edred wrote:
J17 wrote:Что это за алгоритм рассчета движения?.. Что он рассчитывает? В инжекте же нету встроенной ходилки...


Есть ее зачатки. В виде команд на движение Addstep и Adddir. Которые как раз и появились в версиях 4.х.х. И именно тогда и начались проблемы с step warning failure и устойчивостью.

Кстати, еще одна вещь выплыла буквально только что - если в скрипт часто посылает ловушки прицелов на тайлы или статику (мининг например, ламбер) и у тебя быстрый комп - то стоит перед командой установки ловушки прицела и после нее поставить маленькие паузы - 50-100 мс, весьма пользительно для устойчивости инжекта. Причем ловушки прицела как инжекта, так и АСМа.

Я тоже запарился с вылетами этими на ловушках.
Но я только после WTT() ставить стал задержку.
Причём один и тот же скрипт когда рубит логи пахал часами, а когда резал хворост вылетал через 5-6 деревьев.
Сделал дело - флуди смело !!!
Goggy
Posts: 291
Joined: 2004-11-07 01:22:35
Location: Черкассы
Contact:

Post by Goggy »

Askaneli wrote:
Edred wrote:
J17 wrote:Что это за алгоритм рассчета движения?.. Что он рассчитывает? В инжекте же нету встроенной ходилки...


Есть ее зачатки. В виде команд на движение Addstep и Adddir. Которые как раз и появились в версиях 4.х.х. И именно тогда и начались проблемы с step warning failure и устойчивостью.

Кстати, еще одна вещь выплыла буквально только что - если в скрипт часто посылает ловушки прицелов на тайлы или статику (мининг например, ламбер) и у тебя быстрый комп - то стоит перед командой установки ловушки прицела и после нее поставить маленькие паузы - 50-100 мс, весьма пользительно для устойчивости инжекта. Причем ловушки прицела как инжекта, так и АСМа.

Я тоже запарился с вылетами этими на ловушках.
Но я только после WTT() ставить стал задержку.
Причём один и тот же скрипт когда рубит логи пахал часами, а когда резал хворост вылетал через 5-6 деревьев.


С вылетами на ловушки я нашёл токо то чтот реже выпадает при задержке перед ловушкой... :roll:
а при очень большом количестве действий в промежуток времени инжа вилетает реже если окно клиента, а желательно инжи на фоне клиента, то вылатает тоже реже :wink:
J17
Posts: 69
Joined: 2005-01-16 13:44:08
Location: Moscow
Contact:

Post by J17 »

С ловушками реально помогло! :) Спасибо.

А, вот, с окном клиента и инжи - что-то не понял...
Goggy
Posts: 291
Joined: 2004-11-07 01:22:35
Location: Черкассы
Contact:

Post by Goggy »

J17 wrote:С ловушками реально помогло! :) Спасибо.

А, вот, с окном клиента и инжи - что-то не понял...


ну я имел ввиду, когда стоит перс на скрипте, желательно чтобы окно УО было развёрнуто, а активным окном держать окошко инжи(т.е. поверх клиента) :wink:

ЗЫ По крайней мере у меня это реально заметно :roll:

P.P.S. тока вот облом, больше ничего на компе в при таком варианте делать несможешь :lol:
J17
Posts: 69
Joined: 2005-01-16 13:44:08
Location: Moscow
Contact:

Post by J17 »

Провел ряд эксперементов с активностью окна... Падает одинаково, что развернуто УО, что свернуто, что активно окно инжекта, что не активно...
По крайней мере, у меня так.
J17
Posts: 69
Joined: 2005-01-16 13:44:08
Location: Moscow
Contact:

Post by J17 »

Заменил AutoMenu и CancelMenu на WaitMenu. Стало значительно стабильней работать.
Sfagnum
Expert!
Posts: 1284
Joined: 2004-07-04 00:14:58
Contact:

Post by Sfagnum »

J17 wrote:Заменил AutoMenu и CancelMenu на WaitMenu. Стало значительно стабильней работать.
AutoMenu крайне стабильно у меня. CancelMenu пользую как правило ток в начале скрипта ;)
нее ну в конце ессно тож стоит... но как правило до этого не доходит.

не мог бы показать где и как юзаешь?
J17
Posts: 69
Joined: 2005-01-16 13:44:08
Location: Moscow
Contact:

Post by J17 »

Было:

Code: Select all

sub CreateItem()
   UO.AutoMenu('Cloth', 'Shirts')
   UO.AutoMenu('Shirts', 'plain dress')
   var Waiting
   repeat
      NeedResource(ClothType  , ItemCloth)
      NeedResource(ThreadType , ItemThreads)
      NeedResource(LeatherType, ItemLeather)
      NeedResource(SwKitType, 1)
      UO.DeleteJournal()
      CheckLag()
      Wait(100)
      UO.WaitTargetType(ClothType)
      Wait(100)
      UO.UseType(SwKitType)
      while UO.Waiting()
         Wait(100)
      wend
      CheckLag()
      Waiting = 0
      repeat
         Waiting = Waiting + 1
         wait(1000)
      until UO.InJournal('You put') or UO.InJournal('fail') or UO.InJournal('You broke') or Waiting > 30
   until UO.InJournal('You put')
   UO.CancelMenu()
endsub


Стало:

Code: Select all

sub CreateItem()
   var Waiting
   repeat
      NeedResource(ClothType  , ItemCloth)
      NeedResource(ThreadType , ItemThreads)
      NeedResource(LeatherType, ItemLeather)
      NeedResource(SwKitType, 1)
      UO.WaitMenu('Cloth', 'Shirts', 'Shirts', 'plain dress')
      UO.DeleteJournal()
      CheckLag()
      Wait(100)
      UO.WaitTargetType(ClothType)
      Wait(100)
      UO.UseType(SwKitType)
      while UO.Waiting()
         Wait(100)
      wend
      CheckLag()
      Waiting = 0
      repeat
         Waiting = Waiting + 1
         wait(1000)
      until UO.InJournal('You put') or UO.InJournal('fail') or UO.InJournal('You broke') or Waiting > 30
   until UO.InJournal('You put')
endsub

Первая реализация стабильно слетает в течение часа. Вторая - пока еще ни разу не слетела *три раза плюет через левое плечо :)*.
Sfagnum
Expert!
Posts: 1284
Joined: 2004-07-04 00:14:58
Contact:

Post by Sfagnum »

хех... этот сутками работатет.... не глючит :roll:
у меня по крайней мере.
ИМХО в чём то другом трабла.
J17
Posts: 69
Joined: 2005-01-16 13:44:08
Location: Moscow
Contact:

Post by J17 »

Ну, может, и правда, в чем-то другом дело...
Наверное, когда я заменил AutoMenu на WaitMenu, звезды уже были расположены по-другому, и инжект перестал слетать...
Sfagnum
Expert!
Posts: 1284
Joined: 2004-07-04 00:14:58
Contact:

Post by Sfagnum »

я вот не совсем понимаю зачем у тебя вот это:
NeedResource(ClothType , ItemCloth)
NeedResource(ThreadType , ItemThreads)
NeedResource(LeatherType, ItemLeather)
NeedResource(SwKitType, 1)

вернее 1 строку и последнюю я понимаю зачем... а вот посередине 2 у вас что так много ресов надо для пошива :o
Post Reply