Alife dynamic object.cpp

Материал из MODFAQ.RU — моддинг игр серии S.T.A.L.K.E.R., The Elder Scrolls и Fallout
Перейти к: навигация, поиск

1 вариант

Expression    : assertion failed
Function      : CSE_InventoryBox::add_offline
File          : E:\stalker\patch_1_0004\xr_3da\xrGame\alife_dynamic_object.cpp
Line          : 230
Description   : child

Ошибка[1]

Скриптовый вылет.

Происходит при попытке переместить предмет в контейнер (или из него), и одновременно удалить этот контейнер.

Движок игры пытается переместить предмет, но из-за удаленного родительского объекта (контейнера) не может выполнить операцию с дочерним (child) для контейнера предметом.


Частный случай:

Скриптовый перенос в ящик предметов и сразу скриптовая отправка ящика в оффлайн, чтобы он пропал. Предметы не успели переместиться, и произошел вылет.

Под отправкой в онлайн/оффлайн подразумевается, использование скриптовых методов can_switch_online/can_switch_offline.

В этом случае надо было сложить барахло actor'а во временный ящик и скрыть его от глаз, отправив ящик в принудительный оффлайн. А когда понадобится барахло, перевести ящик в онлайн и вернуть вещи actor'у, после чего удалить этот ящик.

Забирание барахла actor'а может произойти в любой момент на любой локации.

Решение[2]

Перед удалением контейнера требуется дождаться окончания подобных операций.


Частный случай:

Надо отправлять ящик в оффлайн по таймеру, а не сразу.


2 вариант

Expression : assertion failed
Function : CSE_ALifeDynamicObject::switch_online
File : E:\priquel\sources\engine\xrGame\alife_dynamic_object.cpp
Line : 53
Description : !m_bOnline

Ошибка[3]

Неизвестно.

Решение

Неизвестно.


Источники