Alife dynamic object.cpp: различия между версиями

Материал из Моддинг трилогии S.T.A.L.K.E.R. - MODFAQ.RU | +TES/Fallout
Перейти к навигации Перейти к поиску
 
Строка 45: Строка 45:
</pre>
</pre>


=== Ошибка<ref>[https://www.amk-team.ru/forum/topic/3763-intellectual-marauder-mod/?do=findComment&comment=176415 Пост пользователя "*Shoker*" на AMK форуме]</ref> ===
=== Ошибка<ref>[https://www.amk-team.ru/forum/topic/3763-intellectual-marauder-mod/?do=findComment&comment=176415 Пост пользователя "*Shoker*" на AMK форуме]</ref><ref>[https://www.amk-team.ru/forum/topic/3763-intellectual-marauder-mod/?do=findComment&comment=170836 Пост пользователя "STALKER_LEX" на AMK форуме]</ref><ref>[http://old.ap-pro.ru/forum/54-2532-232594-16-1337339576 Пост пользователя "Гупи=)" на форуме AP Production]</ref><ref>[http://old.ap-pro.ru/forum/127-89260-973228-16-1484577412 Пост пользователя "SaNiok_007" на форуме AP Production]</ref> ===
Неизвестно.
Неизвестно.



Текущая версия от 13:56, 27 августа 2024

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][2][3][4][5]

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

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

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


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

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

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

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

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

Решение[6]

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


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

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


2 вариант

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

Ошибка[7][8][9][10]

Неизвестно.

Решение

Неизвестно.


Источники