Yoko

All sides of Injection
It is currently 2026-01-16 20:26:47

All times are UTC+02:00




Post new topic  Reply to topic  [ 29 posts ]  Go to page 1 2 Next
Author Message
PostPosted: 2005-03-12 21:43:56 
Offline

Joined: 2005-01-16 13:44:08
Posts: 69
Location: Moscow
Проблема:
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 минут... :(

Что это такое? Встречался ли кто-нибудь с чем-то подобным? Может, что-то настроить можно?


Top
   
 Post subject:
PostPosted: 2005-03-14 11:48:42 
Offline

Joined: 2005-02-22 20:03:13
Posts: 77
у меня было такое !
када в команде sayu писались русские слова
и када в скрипт состоял из нескольких функций одна из которых порождала саму себя

_________________
говорила мне мама "учись неуч"


Top
   
 Post subject:
PostPosted: 2005-03-14 11:57:53 
Offline

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

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


Top
   
 Post subject:
PostPosted: 2005-03-14 15:45:19 
Offline
Site Admin
User avatar

Joined: 2004-04-03 16:49:38
Posts: 1964
официально автор скриптового модуля заявил, что любая, пока есть память.
лично я не рискую использовать рекурсию в своих скриптах, стабильность и так низкая.


Top
   
 Post subject:
PostPosted: 2005-03-15 17:42:16 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
DalamarDword6567614D wrote:
MazaFaka wrote:
и када в скрипт состоял из нескольких функций одна из которых порождала саму себя

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


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

А вообще рекомендую взять инжект 312.19 и потестировать эти скрипты на нем (если, конечно, в скриптах не задействованы новые команды). По моим наблюдениям стабильность гораздо выше.


Top
   
 Post subject:
PostPosted: 2005-03-15 17:53:37 
Offline

Joined: 2005-01-16 13:44:08
Posts: 69
Location: Moscow
был код
Code:
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:
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


И слетать стало НА ПОРЯДОК реже! Раньше скрипт работал полчаса-час и слетал, а теперь может иногда больше суток работать... Версию инжекта не менял.


Top
   
 Post subject:
PostPosted: 2005-03-15 17:58:38 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
В первом случае он опрашивает UO.Dir() восемь раз, в втором - 1 раз. То что нестабильность нового инжекта в первую очередь связана с новым алгоритмом расчета движения (или что-то такое), давно уже известно.


Top
   
 Post subject:
PostPosted: 2005-03-15 18:08:53 
Offline

Joined: 2005-01-16 13:44:08
Posts: 69
Location: Moscow
Что это за алгоритм рассчета движения?.. Что он рассчитывает? В инжекте же нету встроенной ходилки...


Top
   
 Post subject:
PostPosted: 2005-03-17 00:28:10 
Offline
Expert!

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


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

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


Top
   
 Post subject:
PostPosted: 2005-03-17 06:05:59 
Offline
Sphere expert
User avatar

Joined: 2004-10-01 08:27:38
Posts: 1143
Location: Уфа
Edred wrote:
J17 wrote:
Что это за алгоритм рассчета движения?.. Что он рассчитывает? В инжекте же нету встроенной ходилки...


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

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

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

_________________
Сделал дело - флуди смело !!!


Top
   
 Post subject:
PostPosted: 2005-03-18 01:40:10 
Offline
User avatar

Joined: 2004-11-07 01:22:35
Posts: 291
Location: Черкассы
Askaneli wrote:
Edred wrote:
J17 wrote:
Что это за алгоритм рассчета движения?.. Что он рассчитывает? В инжекте же нету встроенной ходилки...


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

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

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


С вылетами на ловушки я нашёл токо то чтот реже выпадает при задержке перед ловушкой... :roll:
а при очень большом количестве действий в промежуток времени инжа вилетает реже если окно клиента, а желательно инжи на фоне клиента, то вылатает тоже реже :wink:


Top
   
 Post subject:
PostPosted: 2005-03-18 08:44:22 
Offline

Joined: 2005-01-16 13:44:08
Posts: 69
Location: Moscow
С ловушками реально помогло! :) Спасибо.

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


Top
   
 Post subject:
PostPosted: 2005-03-19 07:20:20 
Offline
User avatar

Joined: 2004-11-07 01:22:35
Posts: 291
Location: Черкассы
J17 wrote:
С ловушками реально помогло! :) Спасибо.

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


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

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

P.P.S. тока вот облом, больше ничего на компе в при таком варианте делать несможешь :lol:


Top
   
 Post subject:
PostPosted: 2005-03-30 01:37:45 
Offline

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


Top
   
 Post subject:
PostPosted: 2005-03-31 09:47:26 
Offline

Joined: 2005-01-16 13:44:08
Posts: 69
Location: Moscow
Заменил AutoMenu и CancelMenu на WaitMenu. Стало значительно стабильней работать.


Top
   
 Post subject:
PostPosted: 2005-03-31 11:01:16 
Offline
Expert!
User avatar

Joined: 2004-07-04 00:14:58
Posts: 1284
J17 wrote:
Заменил AutoMenu и CancelMenu на WaitMenu. Стало значительно стабильней работать.
AutoMenu крайне стабильно у меня. CancelMenu пользую как правило ток в начале скрипта ;)
нее ну в конце ессно тож стоит... но как правило до этого не доходит.

не мог бы показать где и как юзаешь?


Top
   
 Post subject:
PostPosted: 2005-03-31 11:07:48 
Offline

Joined: 2005-01-16 13:44:08
Posts: 69
Location: Moscow
Было:
Code:
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:
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

Первая реализация стабильно слетает в течение часа. Вторая - пока еще ни разу не слетела *три раза плюет через левое плечо :)*.


Top
   
 Post subject:
PostPosted: 2005-03-31 11:36:01 
Offline
Expert!
User avatar

Joined: 2004-07-04 00:14:58
Posts: 1284
хех... этот сутками работатет.... не глючит :roll:
у меня по крайней мере.
ИМХО в чём то другом трабла.


Top
   
 Post subject:
PostPosted: 2005-03-31 11:43:15 
Offline

Joined: 2005-01-16 13:44:08
Posts: 69
Location: Moscow
Ну, может, и правда, в чем-то другом дело...
Наверное, когда я заменил AutoMenu на WaitMenu, звезды уже были расположены по-другому, и инжект перестал слетать...


Top
   
 Post subject:
PostPosted: 2005-03-31 13:51:36 
Offline
Expert!
User avatar

Joined: 2004-07-04 00:14:58
Posts: 1284
я вот не совсем понимаю зачем у тебя вот это:
NeedResource(ClothType , ItemCloth)
NeedResource(ThreadType , ItemThreads)
NeedResource(LeatherType, ItemLeather)
NeedResource(SwKitType, 1)

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


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 29 posts ]  Go to page 1 2 Next

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 4 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Limited