h0N0r 373 Опубликовано 26 Января 2014 (изменено) Вот ещё несколько вылетов, некоторые в теме присутствуют (но по другой причине): [error]Expression : error handler is invoked![error]Function : invalid_parameter_handler[error]File : E:\stalker\sources\trunk\xrCore\xrDebugNew.cpp[error]Line : 804[error]Description :Если выставить костру (zone_flame_small) тип рестриктора "in"---[error]Expression : error handler is invoked![error]Function : handler_base[error]File : E:\priquel\sources\engine\xrCore\xrDebugNew.cpp[error]Line : 742[error]Description : application is abortingПри добавлении нового визуала нпс, если данной модели не прописать соответствующие анимации ЧН:actors\stalker_smart_cover_animationactors\stalker_scripts_animationactors\stalker_animationа для ЗП ещё и:actors\stalker_scenario_animation---001B:035B04A3 xrRender_R2.dllЕсли модель нпс содержит 45 костей (формат ТЧ), а не 47 (root_stalker>bip01>-default bones)---stack trace:001B:1001DDD0 xrCore.dll, str_container::dock()Если объект из all.spawn содержал запись:custom_data = <<ENDstory_id = 606Удалить custom_data = <<END, либо дописать END в новой строке перед story_id---[error]Expression : error handler is invoked![error]Function : handler_base[error]File : D:\prog_repository\sources\trunk\xrCore\xrDebugNew.cpp[error]Line : 764[error]Description : pure virtual function callПри удалении трупа, если в данный момент гг его обыскивает (открыт инвентарь)---stack trace:001B:04782D99 ODE.dll, dDQfromW()001B:04761A25 ODE.dll[error][ 87] : Параметр задан неверно.При застревании гг в геометрии уровня---[error]Expression : 0[error]Function : ErrorLog[error]File : D:\prog_repository\sources\trunk\xrServerEntities\script_engine_script.cpp[error]Line : 49[error]Description : Illegal call of add animation. Weapon is strapping now!!! sim_default_stalker_360228Очень редко бывает в ЗП при загрузке сейва в лагере сталкеров (Скадовск, Янов), в момент когда нпс хочет занять какой-то анимпойнт (скажем место за столом), он должен подойти к нему без оружия (в логике как reach_movement = walk_noweap) и срабатывает исключение из state_mgr_animation.script, function animation:add_animif not (npc:weapon_unstrapped() or npc:weapon_strapped()) thenabort("Illegal call of add animation. Weapon is strapping now!!! %s", npc:name())endВозможно исчезнет при повторной загрузке, или в файле state_lib.script найти блок walk_noweap и в строке weapon = "none" изменить на weapon = "strapped"---[error]Expression : !m_error_code[error]Function : raii_guard::~raii_guard[error]File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp[error]Line : 748[error]Description : ...games\stk_cop\gamedata\scripts\ui_load_dialog.script:230: attempt to index local 'item' (a nil value)В меню загрузке сейвов, выбираешь любой - нажимаешь удалить, затем опять удалить и происходит вылет (Чистый ЗП 1.6.02)---stack trace:001B:04220CC3 xrGame.dll, CDialogHolder::CDialogHolder()илиstack trace:0023:06408050 xrGame.dll, CDialogHolder::CDialogHolder()[error][ 183] : Невозможно создать файл, так как он уже существует.Весьма редкий вылет, в моём случае предпоследний (как и последний) раз был связан с объектом psy_dog_phantom (фантом пси-пса), который обычно создаётся и исчезает через некоторое время, но в данном случае остался и при переходе в онлайн - вызывал вылет. Причём на локациях их может быть много, скажем встретили пси-собаку (она конечно наплодила фантомы) и убежали от неё (она перешла в оффлайн, игрок может на другую локу). Конечно по возвращению на прежнем месте её не будет (под симуляцией уйдёт в смарт) но фантомы остаются, мгновенно удаляющиеся при переходе в онлайн, что и не срабатывает иногда. Такой вылет не удалось воспроизвести целенаправленно, заселяя локации (многократно переходя между ними) одними пси-псами.Решением будет пара строк кода от толкового скриптера, удаляющие все фантомы при переходе в оффлайн.---Недостатки некоторых анимаций, лог вылета может отсутствовать или будет достаточно информативен (в какую сторону копать для исправления):часть из state_mgr_animation_list.script,help_agr = {...into = {[3] = {"help_3_idle_0",{s="agr_stalker_help_2"},"help_3_idle_1"}},...[3] - анимация работает только для оружия, где animation_slot = 3 (обрез и тоз), в игре используется для сталкера, который просит помочь при первом заходе на Агропром (ТЧ), если вооружить этого сталкера другим оружием, не с animation_slot = 3, то его логика зависнет. В ЧН есть подобная анимация, прыгающие монолитовцы в госпитале, только под animation_slot = 2, с любым другим игра будет вылетать.---Несколько способов, чтобы часть игровой логики повисла без последующего вылета и с возможностью сохранения\загрузки:проигрывание партиклов, строка path (вейпоинт просто отсутствовал)[sr_particle]...path = esc_test_particleа также, когда изменение регистра всего одной буквы, alife.ltx:_G.start_game_callback на _g.start_game_callback---Добавлю по вылету типа: D3DXCreateTextureFromFileInMemoryEx ( HW.pDevice,S->pointer(),S->length()...Текстуры для сталкера по высоте\ширине должны быть кратны 2-м: 1024х512, но не 1025х513---Отсутствие знаков комментарий ; в файлах .ltx (может привести к вылету или нет). Для всех частей сталкера с последними патчами, необходим вm_dog.ltx, после [m_dog_step_params]m_poltergeist.ltx, [m_poltergeist_step_params]m_pseudodog.ltx, [m_pseudodog_step_params]---Небольшой баг с wpn_rg-6, точнее если в секции оружия будет дефис и нпс вооружённый им умрёт, то патроны не создаются - даже если они привязаны в death_generic.ltx, а в death_items_by_communities.ltx имеют шанс спавна 100%---И напоследок, как вынести всю custom data объекта из all.spawn:Для примера, некий нпс:custom_data = <<END[smart_terrains]esc_lager = true[spawner]cond = {+test_info}[logic]cfg = scripts\esc\esc_test.ltxесли перенести (не скопировать) в данный ltx, секции [smart_terrains], [spawner] - работать они небудут, но если изменить custom_data = <<END на custom_data = #include "scripts\esc\esc_test.ltx"<<END - всё будет работать, проверено на ТЧ, вынесена custom data всех объектов (для динамического изменения параметров рестрикторов и прочего, без пересборки спавна и начала новой игры) В читабельный вид привести пост не судьба было? ColR_iT Изменено 26 Января 2014 пользователем ColR_iT 5 1 https://sites.google.com/view/xray-sdk-0-4-smg Поделиться этим сообщением Ссылка на сообщение
h0N0r 373 Опубликовано 5 Марта 2014 Если в секции сквада есть spawn_point = way_point, но сам путь отсутствует в all.spawn. Такой сквад не заспавнишь, а если он ещё прописан в simulation.ltx, т.е создается при начале игры - то как только до него дойдёт очередь, стартовый спавн прервётся. При этом игра загружается, и только через некоторое время происходит вылет из-за переполнения буфера. Поэтому нужно добавить предстартовую проверку в sim_squad_scripted.script, в функцию function sim_squad_scripted:create_npc(spawn_smart) - выглядит так: if spawn_point == "self" then base_spawn_position = spawn_smart.position base_lvi = spawn_smart.m_level_vertex_id base_gvi = spawn_smart.m_game_vertex_id else if not level.patrol_path_exists(spawn_point) then -- проверка, на наличие пути в all.spawn abort("Path does not exist [%s]", spawn_point) end base_spawn_position = patrol(spawn_point):point(0) base_lvi = patrol(spawn_point):level_vertex_id(0) base_gvi = patrol(spawn_point):game_vertex_id(0) endа также в _g.script, функция abort - разкомментировать строку error_log. Теперь если путь отсутствует, будет происходить вылет, с его именем в логе. 2 1 https://sites.google.com/view/xray-sdk-0-4-smg Поделиться этим сообщением Ссылка на сообщение