Jump to content
Полтергейст

Вылеты без логов - в чём причины и как с ними бороться

Recommended Posts

strelok200    0

У меня вылет без лога когда я неписю прописал другую логику

[logic]

active = remark@base

danger = danger_condition

meet = meet

 

[remark@base]

anim = hello_wpn

no_move = true

target = actor

meet = meet

on_actor_dist_le = 2| remark@punch

danger = danger_condition


Создаю глобальный мод с новыми локациямЭ

Share this post


Link to post
Share on other sites
=VENOM=    49

А секция [remark@punch] имеется? А скция [meet] тоже есть? Кстати, meet прописывается только в конкретной секции логики ([remark]), в общей же [logic] её указывать ни к чему.

 

Ищи ошибку, отсеивая параметры: закомментируй все поля в секции [logic], кроме active, в [remark@base] вообще все... ну, кроме target. Если вылета не будет, включай по очереди остальные параметры. Если всё равно вылетает - возможно, проблемы с самим NPC, его профилем или диалогами, на него повешенными.

Edited by Полтергейст

Share this post


Link to post
Share on other sites
amik    241

Иногда причиной таких вылетов на динамике могут быть безобидные партиклы. Как бороться? Уменьшать нужные (а точней не нужные) параметры в PE.

Просто к теме.


Мой архив

Сталкером не занимаюсь.

Share this post


Link to post
Share on other sites

Вылет без лога в ТЧ при выходе в главное меню бывает, когда в ui_main_menu.script допущена синтаксическая ошибка. Например такая:

eif dik == DIK_keys.DIK_Q then

self:OnMessageQuitWin()


Freedom

Share this post


Link to post
Share on other sites
Zander_driver    3,032

Еще бывают вылеты без лога из-за партиклов, нормально работающих и обычно не вызывающих проблем - в тех случаях, когда (предположительно - в онлайне) слишком много объектов использующих партиклы. Я недавно тестировал систему спавна артов после выброса, во время теста вся локация была завалена артефактами - они вываливались из каждой аномалии. В итоге вылет.

С более мудреными, чем у артов, партиклами, для такой ситуации наверно будет достаточно и меньшего количества объектов.

 

В логе в таком случае остается только такое:

 

Scheduler tried to update object particle_instance
stack trace:

001B:0384C36F xrParticles.dll, PAPI::ParticleManager()


 

Все это бегает, орет, гоняется друг за другом, попадает в аномалии. Я не знаю что там можно делать и в какой экипировке туда можно идти...

Share this post


Link to post
Share on other sites
Kirag    35

Вылет без лога:

Вчера пытался поменять мировую модель у оружия на классе РПГ-7, полдня летал на рабстол без лога, пока не понял, в чем дело.

Причина - в новой модели не существовало кости, указанной в grenade_bone основного конфига (в смысле, не ХУД-секция). Возможно, то же самое будет и на классах АК-74 и Грозы. К этой кости может быть ничего не привязано, она может не иметь шейпа, но быть обязана.

С этой костью связан еще один баг: попробовал впарить за grenade_bone главную кость мировой модели. После выстрела (в каком бы направлении не стрелял) почему-то предлагался переход на другую локацию, и актора выбрасывало к переходу на Свалку - тесты, по традиции, на Кордоне.

При попытке впарить любую другую кость с привязанной частью модели эту часть при перезарядке от 3 лица корежит.


Мои работы:

Ночные прицелы + смена ножевого слота

AI вертолетов + ПЗРК

Soul Cube

 

Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем.

Share this post


Link to post
Share on other sites

Возможен и даже очень вероятен вылет без лога, если в XML файле в теле описания диалога вместо ссылки на текстовый строковый файл вписывать текст напрямую и при этом количество символов превысит лимит (255 символов, если я правильно помню).

Share this post


Link to post
Share on other sites

Вылет без лога происходит не только если в xml диалоге указать функцию, которой не существует, но и в скриптовом диалоге тоже такая гадость. Причем функция, создающая диалог отрабатывает стабильно, но потом следует вылет без лога


Freedom

Share this post


Link to post
Share on other sites
Zander_driver    3,032

Ну это как бы одно и то же. Не важно, как был создан диалог - скриптом или xml-файлом. Когда из диалога происходит обращение к несуществующей функции - тогда и вылет.


 

Все это бегает, орет, гоняется друг за другом, попадает в аномалии. Я не знаю что там можно делать и в какой экипировке туда можно идти...

Share this post


Link to post
Share on other sites

Вылет без лога может случаиться, если вызвать метод update() из серверного объекта мёртвого NPC. Скорее всего для brain():update() будет то же самое, но надо будет ещё потестировать для более точных данных.

 

Ещё один источник проблем - функции cse_alife_smart_zone.register_npc() и cse_alife_smart_zone.unregister_npc(). Причём вылеты от них бывают не при каждом вызове, а "плавающие" (через раз). В смартах они не используются (видимо, именно поэтому разрабы их убрали), но на всякий случай оставлю это тут.

Edited by Полтергейст

Share this post


Link to post
Share on other sites

Флуд почищен, список причин вылетов обновлён.

 

Вчера столкнулся с непонятным вылетом без лога, причина скорее всего в рестрикторах.

Дело в том, что я пытался прописать всем NPC (людям) в рестрикторы все аномалии, находящиеся на этом уровне, с помощью функции alife():add_in_restriction(npc, restrictor_id). При net_destroy, соответственно, удалял их с помощью alife():remove_in_restriction(npc, restrictor_id). Также был учтён баг с удалением рестриктора, прописанного кому-то. При самой игре вылета нет, но если сохраниться возле какого-нибудь NPC и потом загрузиться, то вылет был. Возможно, из-за того, что была попытка прописать всё это в рестрикторы дважды, либо весь этот список как-то неправильно сохраняется.

Edited by Полтергейст

Share this post


Link to post
Share on other sites
abramcumner    820

Полтергейст,

размер списка рестрикторов у нпц ограничен - возможно вылет из-за этого

Share this post


Link to post
Share on other sites
abramcumner    820

_Призрак_,

в клиентском объекте список рестрикторов хранится в виде строки, в которой через запятую перечисляются имена рестрикторов. На строку отводится 4кб. Формирование этой строки происходит сишными функциями, без учета размера буфера. Поэтому и упомянул про это.

 

Ну и мне казалось, что длина строки 1кб, а 4кб еще по-божески :)

Share this post


Link to post
Share on other sites

Вылет без лога произойдёт, если попытаться использовать функцию wounded(...) для изменения состояния раненности NPC. Даже перенос её вызова в update(...) может не помочь - у меня вылетает и в первом update, и в net_spawn. Такие же проблемы могут быть при использовании некоторых других функций, но пока что с ними не сталкивался.

Edited by Полтергейст

Share this post


Link to post
Share on other sites
Zander_driver    3,032

Дополню то что у вас в шапке:

Ошибка в вызове функции из диалога: после имени функции скобки писать НЕ НУЖНО.

Вот так

Код

<action>file.func()</action>

 

писать нельзя, нужно вот так:

Код

<action>file.func</action>

 

(file - имя файла скрипта, func - имя функции)

Кроме этого, безлоговый вылет может случиться при вызове функции, которой нет. Но - только если ее использовать в прекондишене. В экшенах вылета не будет.

т.е. если в файле file нет функции func, то:

<action>file.func</action>

Не произойдет ничего

<precondition>file.func</precondition>

Будет вылет без лога.

То же самое если в файле file синтаксическая ошибка.

Edited by ColR_iT

 

Все это бегает, орет, гоняется друг за другом, попадает в аномалии. Я не знаю что там можно делать и в какой экипировке туда можно идти...

Share this post


Link to post
Share on other sites

Вылет без лога случается, если установить состояние тела равным move.crouch и ментальное состояние anim.free. Например, вот такой код

npc:set_mental_state(anim.free)
npc:set_body_state(move.crouch)

вызовет вылет без лога. В скриптах state_mgr оригинальной игры (ТЧ) установка этой комбинации состояний запрещена, поэтому при установке состояний через state_mgr.set_state(...) такого вылета не может произойти. Но если состояние устанавливается напрямую (как показано выше) или запрет в state_mgr снят, то вылет будет.

Edited by Полтергейст

Share this post


Link to post
Share on other sites

Подскажите, в чем дело. При переходе из подземелья Агропрома на Агропром следует безлоговый вылет, при попытке запустить сейв - безлоговый вылет при нажатии на него. Что самое интересное, на этих локациях я ничего не менял. Я сделал оружейную сборку на 1 Гб, поэтому мне не катит все заново перебирать... :ny_unsure:

 

Ещё как катит! Подними глаза в этот пост #26 на этой же странице и поймёшь в чём возможная причина.

ColR_iT

Edited by ColR_iT

Share this post


Link to post
Share on other sites
ШиЗ    133

Были безлоговые вылеты при редактировании модели пысовского оружия и пихания моделей в другие папки.

Решение:

1) Либо в конфиге оружия указать те scope status, silencer status и grenade_launcher status, что и в оригинале.

2) Если нужен ствол с новыми обвесами, то надо хотя бы мировую модель положить в такую же папку с игрой, что и в оригинале, то есть meshes\weapons.

 

Да, и еще - не надо писать тексты диалогов в схеме диалога - тоже вылет. Лимит 128 символов.

Share this post


Link to post
Share on other sites

Уважаемый ColR_iT, из-за костей вылет быть не может, т.к.

1) я через спавнер спавню все новые стволы в инвентарь и тестирую;

2) новое оружие есть только на Армейских складах, Припяти и на ЧАЭС.

 

Ну посуди сам: если ничего кроме оружия ты не добавляешь и локации ты не трогал, из-за чего тогда? Барабашка?

К тому же я сказал "возможная" проблема.

Ну если нет так нет, моё дело предложить.

ColR_iT

Edited by ColR_iT

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

AMK-Team.ru

×
×
  • Create New...