Patrol path manager.cpp: различия между версиями

Материал из Моддинг трилогии S.T.A.L.K.E.R. - MODFAQ.RU | +TES/Fallout
Перейти к навигации Перейти к поиску
Новая страница: «__NOTOC__ <pre> Expression : vertex || show_restrictions(m_object) Function : CPatrolPathManager::select_point File : E:\stalker\sources\trunk\xr_3da…»
 
Нет описания правки
 
Строка 1: Строка 1:
__NOTOC__
__NOTOC__
== 1 вариант ==
<pre>
<pre>
Expression    : vertex || show_restrictions(m_object)
Expression    : vertex || show_restrictions(m_object)
Строка 17: Строка 18:
=== Решение<ref>[http://www.amk-team.ru/forum/faq/ Страница FAQ на AMK форуме, раздел "Справочник вылетов"]</ref> ===
=== Решение<ref>[http://www.amk-team.ru/forum/faq/ Страница FAQ на AMK форуме, раздел "Справочник вылетов"]</ref> ===
Найти и исправить ошибку.
Найти и исправить ошибку.
== 2 вариант ==
<pre>
Expression    : ai().level_graph().valid_vertex_id(vertex->data().level_vertex_id())
Function    : CPatrolPathManager::select_point
File        : E:/stalker/patch_1_0004/xr_3da/xrGame/patrol_path_manager.cpp
Line        : 164
Description    : patrol path[mil_mercs_walker_3_walk], point on path [name07],object [ros_killer_respawn_230016]
</pre>
=== Ошибка ===
Характерен для [[S.T.A.L.K.E.R. - Тень Чернобыля|ТЧ]] до версии 1.0006 из-за ошибки в путях.
<pre>patrol path[имя_пути], point on path [имя_нулевой_точки_пути],object [объект_использующий_этот_путь]</pre>
Грубо говоря, путь находится вне AI-сетки. Например, сгенерировалась сетка, создан спавн и пути на уровне, все это скомпилировано и обыграно. После этого изменена AI-сетка и путь из лога оказался вне нее. Происходит, когда игрок подходит к объекту, использующему этот путь и объект переходит в онлайн.
''Ещё один вариант:'' указанная точка пути имеет недопустимый (чаще всего отрицательный) '''level_vertex_id'''
=== Решение ===
Попробуйте загрузить последнее сохранение и не сохраняться рядом с местами, где происходят такие вылеты.
Исправить можно, переместив пути либо точки, выходящие за AI-сетку в ее пределах.
''Ещё один вариант:'' распаковать '''all.spawn''', найти этот путь и отредактировать либо удалить эту точку пути так, чтобы '''level_vertex_id''' для нее был задан правильно. Правильность '''level_vertex_id''' имеет значение для всех путей, по которым кто-то передвигается (за исключением вертолетов).





Текущая версия от 14:17, 26 февраля 2019

1 вариант

Expression    : vertex || show_restrictions(m_object)
Function    : CPatrolPathManager::select_point
File        : E:\stalker\sources\trunk\xr_3da\xrGame\patrol_path_manager.cpp
Line        : 155
Description    : any vertex in patrol path [sniper_3_walk] in inaccessible for object [stalker_0002]

Ошибка

Какая-то вершина (вейпоинт) пути (в данном случае sniper_3_walk) стоит в неположенном месте. Например, не на AI-сетке.
Указанный объект (в данном случае stalker_0002), который якобы двигался по указанному пути (sniper_3_walk), попал на эту точку, а заодно ушёл за AI-сетку. На это и ругается движок.
Тоже самое произойдет, если координата (вейпоинт) пути (sniper_3_walk) совпадeт с координатами места, где NPC запрещено находится, будь то рестриктор или аномалия в схеме обхода аномалий.
Также этот вылет наблюдается при попытке отправить NPC за пределы места работ параметр out_rest = "имя_рестриктора", в файле загрузки работ гулага.
Например, попробуйте в ТЧ, отправить любого NPC из лагеря новичков, допустим к остановке - получите этот самый вылет.

Решение[1]

Найти и исправить ошибку.

2 вариант

Expression    : ai().level_graph().valid_vertex_id(vertex->data().level_vertex_id())
Function    : CPatrolPathManager::select_point
File        : E:/stalker/patch_1_0004/xr_3da/xrGame/patrol_path_manager.cpp
Line        : 164
Description    : patrol path[mil_mercs_walker_3_walk], point on path [name07],object [ros_killer_respawn_230016]

Ошибка

Характерен для ТЧ до версии 1.0006 из-за ошибки в путях.

patrol path[имя_пути], point on path [имя_нулевой_точки_пути],object [объект_использующий_этот_путь]

Грубо говоря, путь находится вне AI-сетки. Например, сгенерировалась сетка, создан спавн и пути на уровне, все это скомпилировано и обыграно. После этого изменена AI-сетка и путь из лога оказался вне нее. Происходит, когда игрок подходит к объекту, использующему этот путь и объект переходит в онлайн.

Ещё один вариант: указанная точка пути имеет недопустимый (чаще всего отрицательный) level_vertex_id

Решение

Попробуйте загрузить последнее сохранение и не сохраняться рядом с местами, где происходят такие вылеты. Исправить можно, переместив пути либо точки, выходящие за AI-сетку в ее пределах.

Ещё один вариант: распаковать all.spawn, найти этот путь и отредактировать либо удалить эту точку пути так, чтобы level_vertex_id для нее был задан правильно. Правильность level_vertex_id имеет значение для всех путей, по которым кто-то передвигается (за исключением вертолетов).


Источник