Shredder 49 Опубликовано 14 Декабря 2012 Поделиться Опубликовано 14 Декабря 2012 Такой вопрос. Как можно отследить момент, когда элементы худа (миникарта, полоски здоровья и выносливости и т.д.) скрываются при прицеливании с оптикой? Мне нужно скрывать элементы, которые я добавлял сам. Я знаю способ регистрации изменения fov, но при таком подходе скрытие моих элементов немного запаздывает. Может кто-нибудь знает другой способ? Ссылка на комментарий
Artos 99 Опубликовано 14 Декабря 2012 Поделиться Опубликовано 14 Декабря 2012 Shredder, мало "знать способ", не менее важно уметь его применять... Нет "другого" штатного способа для твоей задумки. Тут если только дорабатывать движок или использовать функционал кейлоггера, который может отлавливать клики ПКМ. Вот тогда по каждому такому клику можешь проверять изменение fov и принимать решение. Ну а без клик-мониторинга ПКМ, тебе просто напросто чтобы не запаздывало, требуется исключить это "запаздывание", т.е. делать проверки с достаточной периодичностью, чтобы не заметно было запаздывание. Учитывая, что апдейты актора следуют в среднем каждые ~20ms - запаздывание практически можно свести к незаметности. Но, конечно, высокая частота проверок ведет к расходованию ресурсов, так что важна максимальная оптимизация алгоритма и кода проверок. "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
Shredder 49 Опубликовано 15 Декабря 2012 Поделиться Опубликовано 15 Декабря 2012 Так не хотелось эту проверку на постоянный апдейт вешать. А что за кейлоггер? Ссылка на комментарий
Artos 99 Опубликовано 15 Декабря 2012 Поделиться Опубликовано 15 Декабря 2012 (изменено) Мною упомянут 'функционал' кейлоггера... , т.е. то, что отслеживает нажатия клавиш на клавиатуре/мыши и дает об этом информацию. Это может быть реализовано самыми различными способами, как внешними приблудами (вспомним о наработке by kstn or alpet), так и доработкой/расширением библиотек движка (например LuaFix). Ну и любая "похотелка" требует жертв - хочешь без запаздывания - отслеживай без запаздывания... ;-) Изменено 15 Декабря 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
Сталкер Лом 356 Опубликовано 17 Декабря 2012 Поделиться Опубликовано 17 Декабря 2012 Снова здравствуйте. Делал смарт на новой локации, но при начале новой игры получал вылет: * [prefetch] time: 6277 ms * [prefetch] memory: 78166Kb ! Player name in registry is empty! (InstallUserName) * phase time: 6412 ms * phase cmem: 201971 K * phase time: 9 ms * phase cmem: 201971 K * Creating new game... * Loading spawn registry... FATAL ERROR [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 : ....e.r. - Зов Припяти\gamedata\scripts\xr_logic.script:941: bad argument #1 to 'gfind' (string expected, got nil) stack trace: Долго мучился в чём дело, не понял, плюнул на него, начал делать другой, тот получился, работает. Взялся делать другой, но так же ловлю этот же вылет. Собственно вопрос: Что сей лог значит? Заранее благодарю. Работы на Artstation - https://www.artstation.com/artist/stalker_lom Ссылка на комментарий
stalker_343 0 Опубликовано 19 Декабря 2012 Поделиться Опубликовано 19 Декабря 2012 Какую логику задать НПСу, что бы он сидел у костра. А то я все вроде создал, и камп зону, и смарт-кавер, и самого НПС рядом. А он у меня идет куда-то, просто гуляет по Зоне. Как это исправить можно? Ссылка на комментарий
Стрелоk 14 Опубликовано 20 Декабря 2012 Поделиться Опубликовано 20 Декабря 2012 Такая проблема: заспавнил сквад на агропроме (перенесенная лока из ТЧ) и при подходе к базе военных, в лагере никого нет. Вот мои коды [agr_army_squad]:online_offline_group faction = army npc = agr_army_commander, agr_army_novice, agr_army_veteran, agr_army_master, agr_army_novice, agr_army_veteran, agr_army_master, agr_army_novice, agr_army_veteran, agr_army_master, agr_army_novice, agr_army_veteran, agr_army_master, agr_army_novice target_smart = agr_smart_terrain_1 spawn_point = agr_smart_terrain_1_spawn_point story_id = agr_army_squad1 ;Логика Военных на Агропроме [logic@agr_army_commander] active = walker@commander suitable = {=check_npc_name(agr_army_commander)} true [walker@commander] path_walk = agr14_walk path_look = agr3_look ; [logic@agr_army_guard1] active = walker@agr_army_guard1 suitable = {=check_npc_name(sim_stalker_army_veteran)} true [walker@agr_army_guard1] path_walk = agr1_walk path_look = agr1_look ; [logic@agr_army_guard2] active = walker@agr_army_guard2 suitable = {=check_npc_name(sim_stalker_army_veteran)} true prior = 90 [walker@agr_army_guard2] path_walk = agr2_walk path_look = agr1_look ; [logic@agr_army_guard3] active = walker@guarder_3 suitable = {=check_npc_name(sim_stalker_army_veteran)} true prior = 90 [walker@guarder_3] path_walk = agr3_walk path_look = agr1_look ; [logic@agr_army_guard4] active = walker@guarder_4 suitable = {=check_npc_name(sim_stalker_army_veteran)} true prior = 90 [walker@guarder_4] path_walk = agr4_walk path_look = agr1_look ; [logic@agr_army_guard5] active = walker@guarder_5 suitable = {=check_npc_name(sim_stalker_army_veteran)} true prior = 90 [walker@guarder_5] path_walk = agr5_walk path_look = agr2_look ; [logic@agr_army_guard6] active = walker@guarder_6 suitable = {=check_npc_name(sim_stalker_army_veteran)} true prior = 90 [walker@guarder_6] path_walk = agr6_walk path_look = agr2_look ; [logic@agr_army_guard7] active = walker@guarder_7 suitable = {=check_npc_name(sim_stalker_army_veteran)} true prior = 90 [walker@guarder_7] path_walk = agr7_walk path_look = agr2_look ; [logic@agr_army_guard8] active = walker@guarder_8 suitable = {=check_npc_name(sim_stalker_army_veteran)} true prior = 90 [walker@guarder_8] path_walk = agr8_walk path_look = agr2_look ; [logic@agr_army_guard9] active = walker@guarder_9 suitable = {=check_npc_name(sim_stalker_army_veteran)} true prior = 90 [walker@guarder_9] path_walk = agr9_walk path_look = agr3_look ; [logic@agr_army_guard10] active = walker@guarder_10 suitable = {=check_npc_name(sim_stalker_army_veteran)} true prior = 90 [walker@guarder_10] path_walk = agr10_walk path_look = agr3_look ; [logic@agr_army_guard11] active = walker@guarder_11 suitable = {=check_npc_name(sim_stalker_army_veteran)} true prior = 90 [walker@guarder_11] path_walk = agr11_walk path_look = agr3_look ; [logic@agr_army_guard12] active = walker@guarder_12 suitable = {=check_npc_name(sim_stalker_army_veteran)} true prior = 90 [walker@guarder_12] path_walk = agr12_walk path_look = agr3_look ; [logic@agr_army_guard13] active = walker@guarder_13 suitable = {=check_npc_name(sim_stalker_army_veteran)} true prior = 90 [walker@guarder_13] path_walk = agr13_walk path_look = agr3_look [smart_terrain];agr_army_smart (14 работ) squad_id = 1 max_population = 2 respawn_params = respawn@esc_a1 [respawn@esc_a1] sim_stalker_army [sim_stalker_army] spawn_squads = sim_stalker_army_veteran spawn_num = 1 [exclusive] agr_army_commander = agr\agr_smart1.ltx agr_army_guard1 = agr\agr_smart1.ltx agr_army_guard2 = agr\agr_smart1.ltx agr_army_guard3 = agr\agr_smart1.ltx agr_army_guard4 = agr\agr_smart1.ltx agr_army_guard5 = agr\agr_smart1.ltx agr_army_guard6 = agr\agr_smart1.ltx agr_army_guard7 = agr\agr_smart1.ltx agr_army_guard8 = agr\agr_smart1.ltx agr_army_guard9 = agr\agr_smart1.ltx agr_army_guard10 = agr\agr_smart1.ltx agr_army_guard11 = agr\agr_smart1.ltx agr_army_guard12 = agr\agr_smart1.ltx agr_army_guard13 = agr\agr_smart1.ltx [agr_army_squad]:default_squad sim_avail = true [start_position_agroprom] agr_army_squad = agr_smart_terrain_1 [6654464] ; cse_abstract properties section_name = smart_terrain name = agr_smart_terrain_1 position = 0.66438144445419,2.4958183765411,6.0123829841614 direction = 0,0.000491000013425946,0 ; cse_alife_object properties game_vertex_id = 1080 distance = 0 level_vertex_id = 151958 object_flags = 0xffffff3e custom_data = <<END [smart_terrain] cfg = scripts\agr\smart\agr_army_smart.ltx END ; cse_shape properties shapes = shape0 shape0:type = sphere shape0:offset = 0,0,0 shape0:radius = 2 ; cse_alife_space_restrictor properties restrictor_type = 3 ; se_smart_terrain properties Также прописал все вэйпоиты К20 Ссылка на комментарий
Стрелоk 14 Опубликовано 20 Декабря 2012 Поделиться Опубликовано 20 Декабря 2012 Перепробовал множество вариантов. Локацию зарегистрировал в скриптах- результат тот же. В лагере никого нет К20 Ссылка на комментарий
Стрелоk 14 Опубликовано 21 Декабря 2012 Поделиться Опубликовано 21 Декабря 2012 (изменено) Такой вопрос создал новый сквад в ЗП на новой локе (локи все заранее настроил через скрипты). В общем при заходе на локу, где должен стоять сквад, я его не обнаружил. Пришлось заспавнить его через повелитель Зоны. И я словил вылет Exp ression : !m_error_codeFunction : raii_guard::~raii_guard File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp Line : 748 Description : ... - Зов Припяти\gamedata\scripts\smart_terrain.script:584: attempt to index local 'job_data' (a nil value) Вот файлы, которые я редачил [agr_army_squad]:online_offline_group faction = army npc = agr_army_commander, agr_army_novice, agr_army_veteran, agr_army_master, agr_army_novice, agr_army_veteran, agr_army_master, agr_army_novice, agr_army_veteran, agr_army_master, agr_army_novice, agr_army_veteran, agr_army_master, agr_army_novice target_smart = agr_smart_terrain_1 spawn_point = agr_smart_terrain_1_spawn_point story_id = agr_army_squad1 npc_in_squad = 14, 14 ;Логика Военных на Агропроме [logic@agr_army_commander] active = walker@commander suitable = {=target_squad_name(agr_army_commander) !check_npc_name(agr_army_commander)} true [walker@commander] path_walk = agr14_walk path_look = agr3_look ; [logic@agr_army_guard1] active = walker@agr_army_guard1 suitable = {=target_squad_name(agr_army_novice) !check_npc_name(agr_army_novice)} true prior = 100 [walker@agr_army_guard1] path_walk = agr1_walk path_look = agr1_look ; [logic@agr_army_guard2] active = walker@agr_army_guard2 suitable = {=target_squad_name(agr_army_novice) !check_npc_name(agr_army_novice)} true prior = 100 [walker@agr_army_guard2] path_walk = agr2_walk path_look = agr1_look ; [logic@agr_army_guard3] active = walker@guarder_3 suitable = {=target_squad_name(agr_army_novice) !check_npc_name(agr_army_novice)} true prior = 100 [walker@guarder_3] path_walk = agr3_walk path_look = agr1_look ; [logic@agr_army_guard4] active = walker@guarder_4 suitable = {=target_squad_name(agr_army_novice) !check_npc_name(agr_army_novice)} true prior = 90 [walker@guarder_4] path_walk = agr4_walk path_look = agr1_look ; [logic@agr_army_guard5] active = walker@guarder_5 suitable = {=target_squad_name(agr_army_veteran) !check_npc_name(agr_army_veteran)} true prior = 90 [walker@guarder_5] path_walk = agr5_walk path_look = agr2_look ; [logic@agr_army_guard6] active = walker@guarder_6 suitable = {=target_squad_name(agr_army_veteran) !check_npc_name(agr_army_veteran)} true prior = 90 [walker@guarder_6] path_walk = agr6_walk path_look = agr2_look ; [logic@agr_army_guard7] active = walker@guarder_7 suitable = {=target_squad_name(agr_army_veteran) !check_npc_name(agr_army_veteran)} true prior = 90 [walker@guarder_7] path_walk = agr7_walk path_look = agr2_look ; [logic@agr_army_guard8] active = walker@guarder_8 suitable = {=target_squad_name(agr_army_veteran) !check_npc_name(agr_army_veteran)} true prior = 90 [walker@guarder_8] path_walk = agr8_walk path_look = agr2_look ; [logic@agr_army_guard9] active = walker@guarder_9 suitable = {=target_squad_name(agr_army_veteran) !check_npc_name(agr_army_veteran)} true prior = 90 [walker@guarder_9] path_walk = agr9_walk path_look = agr3_look ; [logic@agr_army_guard10] active = walker@guarder_10 suitable = {=target_squad_name(agr_army_veteran) !check_npc_name(agr_army_veteran)} true prior = 90 [walker@guarder_10] path_walk = agr10_walk path_look = agr3_look ; [logic@agr_army_guard11] active = walker@guarder_11 suitable = {=target_squad_name(agr_army_master) !check_npc_name(agr_army_master)} true prior = 90 [walker@guarder_11] path_walk = agr11_walk path_look = agr3_look ; [logic@agr_army_guard12] active = walker@guarder_12 suitable = {=target_squad_name(agr_army_master) !check_npc_name(agr_army_master)} true prior = 90 [walker@guarder_12] path_walk = agr12_walk path_look = agr3_look ; [logic@agr_army_guard13] active = walker@guarder_13 suitable = {=target_squad_name(agr_army_master) !check_npc_name(agr_army_master)} true prior = 90 [walker@guarder_13] path_walk = agr13_walk path_look = agr3_look [smart_terrain];agr_army_smart (14 работ) squad_id = 1 max_population = 1 respawn_params = respawn@esc_smart_terrain_3 [respawn@esc_smart_terrain_3] spawn_bandit_enemy@novice [spawn_bandit_enemy@novice] spawn_squads = agr_army_guard1_novice spawn_num = 14 [exclusive] agr_army_commander = agr\agr_smart1.ltx agr_army_guard1 = agr\agr_smart1.ltx agr_army_guard2 = agr\agr_smart1.ltx agr_army_guard3 = agr\agr_smart1.ltx agr_army_guard4 = agr\agr_smart1.ltx agr_army_guard5= agr\agr_smart1.ltx agr_army_guard6 = agr\agr_smart1.ltx agr_army_guard7 = agr\agr_smart1.ltx agr_army_guard8 = agr\agr_smart1.ltx agr_army_guard9 = agr\agr_smart1.ltx agr_army_guard10 = agr\agr_smart1.ltx agr_army_guard11= agr\agr_smart1.ltx agr_army_guard12 = agr\agr_smart1.ltx agr_army_guard13 = agr\agr_smart1.ltx [agroprom_9781] ; cse_abstract properties section_name = smart_terrain name = agr_smart_terrain_1 position = 9.8450374603271,-0.20475387573242,-12.16274356842 direction = 0,0.000491000013425946,0 version = 0x7c script_version = 8 ; cse_alife_object properties game_vertex_id = 2141 distance = 14 level_vertex_id = 160093 object_flags = 0xffffff3e custom_data = <<END [smart_terrain] cfg = scripts\agr\smart\agr_army_smart.ltx END ; cse_shape properties shapes = shape0 shape0:type = sphere shape0:offset = 0,0,0 shape0:radius = 2 ; cse_alife_space_restrictor properties restrictor_type = 3 ; se_smart_terrain properties [agr_smart_terrain_1_agr1_walk] points = p0 p0:name = name00 p0:flags = 0x1 p0:position = 74.687599182129,-0.19838048517704,37.49104309082 p0:game_vertex_id = 2041 p0:level_vertex_id = 212905 [agr_smart_terrain_1_agr2_walk] points = p0 p0:name = name00 p0:flags = 0x1 p0:position = 74.261520385742,-0.20277518033981,32.586505889893 p0:game_vertex_id = 2041 p0:level_vertex_id = 212293 [agr_smart_terrain_1_agr3_walk] points = p0 p0:name = name00 p0:flags = 0x1 p0:position = 40.550983428955,-0.20309883356094,32.203712463379 p0:game_vertex_id = 2043 p0:level_vertex_id = 186295 [agr_smart_terrain_1_agr4_walk] points = p0 p0:name = name00 p0:flags = 0x1 p0:position = 27.342895507813,-0.20614632964134,34.740699768066 p0:game_vertex_id = 2117 p0:level_vertex_id = 175412 [agr_smart_terrain_1_agr1_look] points = p0 p0:name = name00 p0:flags = 0x1 p0:position = 87.214241027832,-0.0076043903827667,37.055202484131 p0:game_vertex_id = 2086 p0:level_vertex_id = 223861 [agr_smart_terrain_1_agr5_walk] points = p0 p0:name = name00 p0:flags = 0x1 p0:position = 57.233306884766,-0.20407727360725,-6.8979187011719 p0:game_vertex_id = 2042 p0:level_vertex_id = 198971 [agr_smart_terrain_1_agr6_walk] points = p0 p0:name = name00 p0:flags = 0x1 p0:position = 63.161029815674,-0.20128826797009,-23.362859725952 p0:game_vertex_id = 2120 p0:level_vertex_id = 203682 [agr_smart_terrain_1_agr7_walk] points = p0 p0:name = name00 p0:flags = 0x1 p0:position = 69.750434875488,0.5572509765625,20.117238998413 p0:game_vertex_id = 2041 p0:level_vertex_id = 208655 [agr_smart_terrain_1_agr2_look] points = p0 p0:name = name00 p0:flags = 0x1 p0:position = 64.765716552734,-0.065148532390594,42.597599029541 p0:game_vertex_id = 2041 p0:level_vertex_id = 204868 [agr_smart_terrain_1_agr8_walk] points = p0 p0:name = name00 p0:flags = 0x1 p0:position = 29.833549499512,-0.091689586639404,-25.688814163208 p0:game_vertex_id = 2090 p0:level_vertex_id = 177630 [agr_smart_terrain_1_agr9_walk] points = p0 p0:name = name00 p0:flags = 0x1 p0:position = 30.273155212402,-0.054670125246048,-22.686992645264 p0:game_vertex_id = 2090 p0:level_vertex_id = 177635 [agr_smart_terrain_1_agr10_walk] points = p0 p0:name = name00 p0:flags = 0x1 p0:position = 7.8225836753845,-0.20538377761841,-22.047399520874 p0:game_vertex_id = 2118 p0:level_vertex_id = 158176 [agr_smart_terrain_1_agr11_walk] points = p0 p0:name = name00 p0:flags = 0x1 p0:position = -11.629301071167,-0.20266951620579,-22.926734924316 p0:game_vertex_id = 2118 p0:level_vertex_id = 140751 [agr_smart_terrain_1_agr12_walk] points = p0 p0:name = name00 p0:flags = 0x1 p0:position = -15.377140045166,-0.20294311642647,-7.4283313751221 p0:game_vertex_id = 2141 p0:level_vertex_id = 137966 [agr_smart_terrain_1_agr3_look] points = p0 p0:name = name00 p0:flags = 0x1 p0:position = -22.633079528809,-0.21571932733059,22.756845474243 p0:game_vertex_id = 2116 p0:level_vertex_id = 132213 [agr_smart_terrain_1_agr13_walk] points = p0 p0:name = name00 p0:flags = 0x1 p0:position = -45.560470581055,-0.21114754676819,20.713350296021 p0:game_vertex_id = 2116 p0:level_vertex_id = 115365 [agr_smart_terrain_1_agr14_walk] points = p0 p0:name = name00 p0:flags = 0x1 p0:position = 21.131872177124,0.038438469171524,10.28621006012 p0:game_vertex_id = 2141 p0:level_vertex_id = 170149 [agr_smart_terrain_1_spawn_point] points = p0 p0:name = wp00 p0:position = 9.6696910858154,-0.20390667021275,-10.409013748169 p0:game_vertex_id = 2141 p0:level_vertex_id = 160095 [start_position_agroprom] agr_army_squad1 = agr_smart_terrain_1[/cut] [cut=simulation_object_props] [agr_army_squad]:default_squad sim_avail = false Изменено 21 Декабря 2012 пользователем Стрелоk К20 Ссылка на комментарий
stalker_343 0 Опубликовано 22 Декабря 2012 Поделиться Опубликовано 22 Декабря 2012 Подскажите пожалуйста. Подключил новую локацию - ЧАЭС (Из ЧН). Все нормально, но я не могу замерить координаты. И ГГ спавнится под локацией. Как можно определить координаты? Ссылка на комментарий
Стрелоk 14 Опубликовано 22 Декабря 2012 Поделиться Опубликовано 22 Декабря 2012 Есть удобная утилита от stalker56, для определения координат в ЗП К20 Ссылка на комментарий
stalker_343 0 Опубликовано 22 Декабря 2012 Поделиться Опубликовано 22 Декабря 2012 Стрелоk, программу я эту скачал, очень полезная. Но у меня проблема другая, я не могу снять координаты на локации, т.к ГГ появляется под локацией. И наверху я никак не могу снять координат, для изменения спавна. Ссылка на комментарий
Artos 99 Опубликовано 22 Декабря 2012 Поделиться Опубликовано 22 Декабря 2012 stalker_343, вроде как demo_record никто не отменял. А вообще, если ты подключил новую локацию, то неужели без SDK собираешься ее обустраивать/заселять? Ну а в SDK получить координаты и вопроса не возникает. Ну и напоследок, ежели у тебя ГГ появляется при спавне "под локацией" - что мешает скорректировать координату Y, чтобы спавнился повыше, т,е. "над"? "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
stalker_343 0 Опубликовано 23 Декабря 2012 Поделиться Опубликовано 23 Декабря 2012 Artos спасибо, сделал как ты написал и все получилось. Но у меня опять проблема: Стал подсоединять локацию Х-18 из ТЧ, все делал как и в прошлый раз. Но в начале загрузки вылет: Expression : assertion failed Function : CLevelGraph::CLevelGraph File : D:\prog_repository\sources\trunk\xrGame\level_graph.cpp Line : 35 Description : header().version() == XRAI_CURRENT_VERSION В чем дело? Ссылка на комментарий
Artos 99 Опубликовано 23 Декабря 2012 Поделиться Опубликовано 23 Декабря 2012 (изменено) stalker_343, советую вначале всегда включать свою думалку и искать решение, а не ожидать что кто-то подскажет. 1. Научись читать и по возможности понимать то, что тебе пишется в логе, особенно по ошибкам. Тебе явно намекается на ошибку связанную с level_graph и в частности про несоответствие каких-то параметров/значений (в данном случае - заголовка объекта твоей карты) текущей версии движка. Делай выводы - т.е. что-то недопортировал именно под CoP. 2. Выбирай для вопросов соответствующую тему, не забывая предоставлять свои материалы/изменения. На тему карт и их подключений имеются соответствующие топики. Изменено 23 Декабря 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
Сталкер Лом 356 Опубликовано 23 Декабря 2012 Поделиться Опубликовано 23 Декабря 2012 Здравствуйте. Даже и не знаю из за чего этот вылет бывает, но появляется он только когда брожу у смарта: FATAL ERROR [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 : ...e.r. - Зов Припяти\gamedata\scripts\state_mgr.script:502: attempt to index field '?' (a nil value) stack trace: В скрипте указанна проверка "special_danger_move", данное значения имеет только библиотека raid (state_lib.script), может, ошибка происходит при атаке на смарт? Что лог мне хочет сказать я так понять и не могу. Помогите, за ответ буду благодарен. Работы на Artstation - https://www.artstation.com/artist/stalker_lom Ссылка на комментарий
Artos 99 Опубликовано 23 Декабря 2012 Поделиться Опубликовано 23 Декабря 2012 (изменено) Сталкер Лом, в подобных вопросах, которые касаются модифицированных скриптов, чтобы другие не гадали - приводят хотя бы куски "своего" кода со строками, на которые ссылается лог ошибки. У тебя явно не оригинальный скрипт state_mgr.script задействован. Ну и советую включить (расскомментировать и активировать printf) отображение в логе технологических строк для вывода в лог в функции state_manager:set_state(...). Так ты и остальные смогут понять на что конкретно ругается движок, на неизвестный state_name, иль отсутствие параметра special_danger_move, или иное... Изменено 23 Декабря 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
Сталкер Лом 356 Опубликовано 24 Декабря 2012 Поделиться Опубликовано 24 Декабря 2012 Скрипты брал от скрипты от комрада nuclia, привожу их правки: стр. 565; animpoint_sit_ass = smart_covers_animpoint_sit_ass.get_smart_cover(), стр. 566; animpoint_sit_knee = smart_covers_animpoint_sit_knee.get_smart_cover(), стр. 409: sleep_noweap = { weapon = "none", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "nil", animation = "sleeping" }, sleep_sit = { weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "sit_ass", animation = "sleep_sit" }, eat_bread = { weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "sit_knee", animation = "eat_bread" }, eat_vodka = { weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "sit_ass", animation = "eat_vodka" }, eat_energy = { weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "sit_ass", animation = "eat_energy" }, eat_kolbasa = { weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "sit_ass", animation = "eat_kolbasa" }, sleep_noweap = { weapon = "none", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "nil", animation = "sleeping" }, sleep_sit = { weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "sit_ass", animation = "sleep_sit" }, eat_bread = { weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "sit_knee", animation = "eat_bread" }, eat_vodka = { weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "sit_ass", animation = "eat_vodka" }, eat_energy = { weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "sit_ass", animation = "eat_energy" }, eat_kolbasa = { weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "sit_ass", animation = "eat_kolbasa" }, стр. 57: animpoint_sit_ass = { weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "animpoint_sit_ass", animation = "animpoint_sit_ass", direction = CSightParams.eSightTypeAnimationDirection }, animpoint_sit_knee = { weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "animpoint_sit_knee", animation = "animpoint_sit_knee", direction = CSightParams.eSightTypeAnimationDirection }, стр. 164: animpoint_sit_ass_eat_bread = { weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "animpoint_sit_ass", animation = "animpoint_sit_ass_eat_bread", direction = CSightParams.eSightTypeAnimationDirection }, animpoint_sit_ass_eat_kolbasa = { weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "animpoint_sit_ass", animation = "animpoint_sit_ass_eat_kolbasa", direction = CSightParams.eSightTypeAnimationDirection }, animpoint_sit_knee_eat_bread = { weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "animpoint_sit_ass", animation = "animpoint_sit_ass_eat_bread", direction = CSightParams.eSightTypeAnimationDirection }, animpoint_sit_knee_eat_kolbasa = { weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "animpoint_sit_ass", animation = "animpoint_sit_ass_eat_kolbasa", direction = CSightParams.eSightTypeAnimationDirection }, стр.287: animpoint_sit_ass_drink_vodka = { weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "animpoint_sit_ass", animation = "animpoint_sit_ass_drink_vodka", direction = CSightParams.eSightTypeAnimationDirection }, animpoint_sit_ass_drink_energy = { weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "animpoint_sit_ass", animation = "animpoint_sit_ass_drink_energy", direction = CSightParams.eSightTypeAnimationDirection }, animpoint_sit_knee_drink_vodka = { weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "animpoint_sit_ass", animation = "animpoint_sit_ass_drink_vodka", direction = CSightParams.eSightTypeAnimationDirection }, animpoint_sit_knee_drink_energy = { weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "animpoint_sit_ass", animation = "animpoint_sit_ass_drink_energy", direction = CSightParams.eSightTypeAnimationDirection }, стр. 370: animpoint_sit_ass_guitar = { weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "animpoint_sit_ass", animation = "animpoint_sit_ass_guitar", --- animation = "play_guitar", direction = CSightParams.eSightTypeAnimationDirection }, animpoint_sit_knee_guitar = { weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "animpoint_sit_ass", animation = "animpoint_sit_ass_guitar", --- animation = "play_guitar", direction = CSightParams.eSightTypeAnimationDirection }, стр. 439: animpoint_sit_ass_harmonica = { weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "animpoint_sit_ass", animation = "animpoint_sit_ass_harmonica", direction = CSightParams.eSightTypeAnimationDirection }, animpoint_sit_knee_harmonica = { weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "animpoint_sit_ass", animation = "animpoint_sit_ass_harmonica", direction = CSightParams.eSightTypeAnimationDirection }, стр.327: sleep_sit = { prop = { maxidle = 10, sumidle = 20, rnd = 100 }, into = { [0] = {"sit_2_to_sleep_2"}}, out = { [0] = {"sleep_2_to_sit_2"}}, idle = { [0] = "sleep_idle_2" }, rnd = { [0] = {"sleep_idle_3" }}}, стр. 327: eat_bread = { prop = { maxidle = 3, sumidle = 3, rnd = 80 }, into = { [0] = {"item_2_draw_0", {a="bread"}, "item_2_draw_1"} }, out = { [0] = {"item_2_holster_0", {d="bread"}, "item_2_holster_1"} }, idle = { [0] = "item_2_aim_0" }, rnd = { [0] = { "item_2_prepare_0", "item_2_attack_0" } }}, eat_vodka = { prop = { maxidle = 3, sumidle = 3, rnd = 80 }, into = { [0] = {"item_4_draw_0", {a="vodka"}, "item_4_draw_1"} }, out = { [0] = {"item_4_holster_0", {d="vodka"}, "item_4_holster_1"} }, idle = { [0] = "item_4_aim_0" }, rnd = { [0] = { "item_4_prepare_0", "item_4_attack_0" } }}, eat_energy = { prop = { maxidle = 3, sumidle = 3, rnd = 80 }, into = { [0] = {"item_5_draw_0", {a="energy_drink"}, "item_5_draw_1"} }, out = { [0] = {"item_5_holster_0", {d="energy_drink"}, "item_5_holster_1"} }, idle = { [0] = "item_5_aim_0" }, rnd = { [0] = { "item_5_prepare_0", "item_5_attack_0" } }}, eat_kolbasa = { prop = { maxidle = 3, sumidle = 3, rnd = 80 }, into = { [0] = {"item_1_draw_0", {a="kolbasa"}, "item_1_draw_1"}}, out = { [0] = {"item_1_holster_0", {d="kolbasa"}, "item_1_holster_1"} }, idle = { [0] = "item_1_idle_1" }, rnd = { [0] = { "item_1_attack_0", "item_1_idle_0" } }}, стр. 64: animpoint_sit_ass = { prop = { maxidle = 5, sumidle = 3, rnd = 80, moving = true }, into = nil, out = nil, idle = { [0] = "sit_2_idle_0", [1] = "sit_2_idle_0" }, rnd = { [0] = { "sit_2_idle_1", "sit_2_idle_2", "sit_2_idle_3" }, [1] = { "sit_2_idle_1", "sit_2_idle_2", "sit_2_idle_3" } }}, animpoint_sit_knee = { prop = { maxidle = 5, sumidle = 3, rnd = 80, moving = true }, into = nil, out = nil, idle = { [0] = "sit_1_idle_0", [1] = "sit_1_idle_0" }, rnd = { [0] = { "sit_1_idle_1", "sit_1_idle_2", "sit_1_idle_3" }, [1] = { "sit_1_idle_1", "sit_1_idle_2", "sit_1_idle_3" } }}, стр. 219. animpoint_sit_ass_eat_bread = { prop = { maxidle = 3, sumidle = 3, rnd = 80 }, into = { [0] = {"item_2_draw_0", {a="bread"}, "item_2_draw_1"}, [1] = {"item_2_draw_0", {a="bread"}, "item_2_draw_1"} }, out = { [0] = {"item_2_holster_0", {d="bread"}, "item_2_holster_1"}, [1] = {"item_2_holster_0", {d="bread"}, "item_2_holster_1"} }, idle = { [0] = "item_2_aim_0", [1] = "item_2_aim_0" }, rnd = { [0] = { "item_2_prepare_0", "item_2_attack_0" }, [1] = { "item_2_prepare_0", "item_2_attack_0" } }}, animpoint_sit_ass_eat_kolbasa = { prop = { maxidle = 3, sumidle = 3, rnd = 80 }, into = { [0] = {"item_1_draw_0", {a="kolbasa"}, "item_1_draw_1"}, [1] = {"item_1_draw_0", {a="kolbasa"}, "item_1_draw_1"} }, out = { [0] = {"item_1_holster_0", {d="kolbasa"}, "item_1_holster_1"}, [1] = {"item_1_holster_0", {d="kolbasa"}, "item_1_holster_1"} }, idle = { [0] = "item_1_idle_1", [1] = "item_1_idle_1" }, rnd = { [0] = { "item_1_attack_0", "item_1_idle_0" }, [1] = { "item_1_attack_0", "item_1_idle_0" } }}, стр. 376: animpoint_sit_ass_drink_vodka = { prop = { maxidle = 3, sumidle = 3, rnd = 80 }, into = { [0] = {"item_4_draw_0", {a="vodka"}, "item_4_draw_1"}, [1] = {"item_4_draw_0", {a="vodka"}, "item_4_draw_1"} }, out = { [0] = {"item_4_holster_0", {d="vodka"}, "item_4_holster_1"}, [1] = {"item_4_holster_0", {d="vodka"}, "item_4_holster_1"} }, idle = { [0] = "item_4_aim_0", [1] = "item_4_aim_0" }, rnd = { [0] = { "item_4_prepare_0", "item_4_attack_0" }, [1] = { "item_4_prepare_0", "item_4_attack_0" } }}, animpoint_sit_ass_drink_energy = { prop = { maxidle = 3, sumidle = 3, rnd = 80 }, into = { [0] = {"item_5_draw_0", {a="energy_drink"}, "item_5_draw_1"}, [1] = {"item_5_draw_0", {a="energy_drink"}, "item_5_draw_1"} }, out = { [0] = {"item_5_holster_0", {d="energy_drink"}, "item_5_holster_1"}, [1] = {"item_5_holster_0", {d="energy_drink"}, "item_5_holster_1"} }, idle = { [0] = "item_5_aim_0", [1] = "item_5_aim_0" }, rnd = { [0] = { "item_5_prepare_0", "item_5_attack_0" }, [1] = { "item_5_prepare_0", "item_5_attack_0" } }}, стр. 456: animpoint_sit_ass_guitar = { prop = { maxidle = 3, sumidle = 3, rnd = 80 }, into = { [0] = {"sit_1_guitar_0_0", {a="guitar_a"}, {f=sr_camp.start_guitar}, "sit_1_guitar_0_1"}, [1] = {"sit_1_guitar_0_0", {a="guitar_a"}, {f=sr_camp.start_guitar}, "sit_1_guitar_0_1"} }, out = { [0] = {"guitar_0_sit_1_0", {d="guitar_a"}, "guitar_0_sit_1_1"}, [1] = {"guitar_0_sit_1_0", {d="guitar_a"}, "guitar_0_sit_1_1"} }, idle = { [0] = "guitar_0", [1] = "guitar_0" }, rnd = nil }, стр. 536: rnd = nil }, (отличается наличием запятой) animpoint_sit_ass_harmonica = { prop = { maxidle = 3, sumidle = 3, rnd = 80 }, into = { [0] = {"sit_2_harmonica_1_0", {a="harmonica_a"}, {f=sr_camp.start_harmonica}, "sit_2_harmonica_1_1"}, [1] = {"sit_2_harmonica_1_0", {a="harmonica_a"}, {f=sr_camp.start_harmonica}, "sit_2_harmonica_1_1"} }, out = { [0] = {"harmonica_1_sit_2_0", {d="harmonica_a"}, "harmonica_1_sit_2_1"}, [1] = {"harmonica_1_sit_2_0", {d="harmonica_a"}, "harmonica_1_sit_2_1"} }, idle = { [0] = "harmonica_0", [1] = "harmonica_0" }, rnd = nil } стр. 70: animpoint_sit_ass = { prop = { maxidle = 5, sumidle = 3, rnd = 80, moving = true }, into = { [0] = { "idle_0_to_sit_2" }, [1] = { "idle_0_to_sit_2" }}, out = { [0] = { "sit_2_to_idle_0" }, [1] = { "sit_2_to_idle_0" }}, idle = { [0] = "sit_2_idle_0", [1] = "sit_2_idle_0" }, rnd = nil}, animpoint_sit_knee = { prop = { maxidle = 5, sumidle = 3, rnd = 80, moving = true }, into = { [0] = { "idle_0_to_sit_1" }, [1] = { "idle_0_to_sit_1" }}, out = { [0] = { "sit_1_to_idle_0" }, [1] = { "sit_1_to_idle_0" }}, idle = { [0] = "sit_1_idle_0", [1] = "sit_1_idle_0" }, rnd = nil}, Здесь автор зачем то заменил строчки вида "["actors\\stalker_hero\\stalker_hero_1"] = true," на "stalker_hero_1 = true," А ещё: стр. 252: animpoint_sit_ass = { {name = "animpoint_sit_ass", predicate = xr_animpoint_predicates.const_predicate_true}, {name = "animpoint_sit_ass_eat_bread", predicate = xr_animpoint_predicates.animpoint_predicate_bread}, {name = "animpoint_sit_ass_eat_kolbasa", predicate = xr_animpoint_predicates.animpoint_predicate_kolbasa}, {name = "animpoint_sit_ass_drink_vodka", predicate = xr_animpoint_predicates.animpoint_predicate_vodka}, {name = "animpoint_sit_ass_drink_energy", predicate = xr_animpoint_predicates.animpoint_predicate_energy}, {name = "animpoint_sit_ass_guitar", predicate = xr_animpoint_predicates.animpoint_predicate_guitar}, {name = "animpoint_sit_ass_harmonica", predicate = xr_animpoint_predicates.animpoint_predicate_harmonica}, }, animpoint_sit_knee = { {name = "animpoint_sit_knee", predicate = xr_animpoint_predicates.const_predicate_true}, {name = "animpoint_sit_knee_eat_bread", predicate = xr_animpoint_predicates.animpoint_predicate_bread}, {name = "animpoint_sit_knee_eat_kolbasa", predicate = xr_animpoint_predicates.animpoint_predicate_kolbasa}, {name = "animpoint_sit_knee_drink_vodka", predicate = xr_animpoint_predicates.animpoint_predicate_vodka}, {name = "animpoint_sit_knee_drink_energy", predicate = xr_animpoint_predicates.animpoint_predicate_energy}, {name = "animpoint_sit_knee_guitar", predicate = xr_animpoint_predicates.animpoint_predicate_guitar}, {name = "animpoint_sit_knee_harmonica", predicate = xr_animpoint_predicates.animpoint_predicate_harmonica}, }, Фух, всё... Работы на Artstation - https://www.artstation.com/artist/stalker_lom Ссылка на комментарий
Artos 99 Опубликовано 24 Декабря 2012 Поделиться Опубликовано 24 Декабря 2012 (изменено) Сталкер Лом, к чему этот "мусор"? Ведь было написано: "У тебя явно не оригинальный скрипт state_mgr.script задействован", и поэтому невозможно понять к чему конкретно относится строка указанная в логе ошибки. Именно строки из этого скрипта (state_mgr.script:502) ты так и не показал. Посоветую еще раз: 1. Включи отображение в логе технологических строк для вывода в лог-файл (расскомментируй и активируй printf). 2. Полученный лог-файл с ошибкой и сами скрипты state_mgr.script и state_lib.script заархивируй и выложи на шару, а в топик дай ссылку. Вот тогда можно что-то будет понять поконкретнее и советовать дальше. Изменено 24 Декабря 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
Сталкер Лом 356 Опубликовано 25 Декабря 2012 Поделиться Опубликовано 25 Декабря 2012 http://rghost.ru/42495051 - Ссылка на state_mgr.script и state_lib.script Artos, про то, как включать "отображение в логе технологических строк для вывода в лог-файл" я не знаю (если не трудно, дайте указания\ссылку как это делать), но знаю способ как выводить полную причину ЛОГа: раскомментировать в функции abort(fmt, ...), что в _g.script строку -- error_log(reason), так вот, я её раскомментировал, сел у костра и начал ждать... Ждал долго, картошка разогрелась, покрылась золотистой корочкой, начала скворчать, источать аромат... В общем, я пошёл поедать моё блюдо и к концу трапезы перед моим лицом всплыл рабочий стол, а вместе с ним и ЛОГ, подобным которому я ещё не видел: ! [LUA][ERROR] ERROR: ILLEGAL SET STATE CALLED!!! binicular fo sim_default_duty_111542 FATAL ERROR [error]Expression : 0 [error]Function : ErrorLog [error]File : D:\prog_repository\sources\trunk\xrServerEntities\script_engine_script.cpp [error]Line : 49 [error]Description : ERROR: ILLEGAL SET STATE CALLED!!! binicular fo sim_default_duty_111542 stack trace: Что то говорит о "наборе состояний, связанным с биноклем", может такое быть из за использования анимации "binocular" для работ типа "patrool"? Работы на Artstation - https://www.artstation.com/artist/stalker_lom Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти