Overf1rst 1 490 Опубликовано 1 июля, 2020 Тема посвящена моддингу на платформе Зов Припяти. Правила темы: Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть. Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода. Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа). Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться. 18 9 1 1 2 6 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Emmis 493 Опубликовано 26 мая, 2021 (изменено) после получения инфо поршня "esc_syjet_gonec_1_end" игра вылетает с таким логом "stack trace:". Что не так? Спойлер [logic@gonec] active = remark@1 suitable = {=check_npc_name(esc_gon_gonec)}true prior = 100 [remark@1] anim = wait meet = meet@1 combat_ignore_cond = true invulnerable = true target = story | actor trade_enable = false on_info = {+esc_syjet_gonec_1_end} walker@1 [walker@1] meet = no_meet path_walk = esc_gon_terrain_guard_1_walk path_look = esc_gon_terrain_guard_1_walk invulnerable = true def_state_moving = rush trade_enable = false [meet@1] use = {=dist_to_actor_le(3) -npc_dialog_end} self, true close_anim = nil close_victim = nil far_anim = nil far_victim = nil sound_start = nil sound_start_wpn = nil sound_stop = nil trade_enable = false allow_break = false use_wpn = true victim = actor abuse = false Изменено 26 мая, 2021 пользователем Emmis История Джона 2 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
makdm 672 Опубликовано 26 мая, 2021 12 минут назад, Emmis сказал: игра вылетает с таким логом "stack trace:". Что не так? Если этот поршень больше ни на что не влияет, то очевидно, что ошибка в путях. Терпение... И все получится. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Emmis 493 Опубликовано 26 мая, 2021 makdm а что в путях может быть не так? вот мой файл с путями, не понимаю где я ошибся Спойлер [esc_gon_terrain_guard_1_walk] points = p0,p1,p2,p3,p4,p5,p6,p7,p8 p0:name = wp00|p=0 p0:flags = 0x1 p0:position = -58.4013671875,-28.8403453826904,-424.794311523438 p0:game_vertex_id = 38 p0:level_vertex_id = 227430 p0:links = p1(1) p1:name = wp01|p=0 p1:flags = 0x2 p1:position = -57.4502944946289,-30.354907989502,-359.788116455078 p1:game_vertex_id = 36 p1:level_vertex_id = 228652 p2:name = wp02|sig=stop_1 p2:flags = 0x4 p2:position = -59.8921279907227,-30.3380699157715,-348.706787109375 p2:game_vertex_id = 36 p2:level_vertex_id = 224167 p2:links = p3(1) p3:name = wp03|p=0 p3:flags = 0x8 p3:position = -62.3007698059082,-23.7739162445068,-266.599700927734 p3:game_vertex_id = 39 p3:level_vertex_id = 220889 p3:links = p4(1) p4:name = wp04|p=0 p4:flags = 0x10 p4:position = -53.4272003173828,-18.9124889373779,-202.8505859375 p4:game_vertex_id = 39 p4:level_vertex_id = 235267 p4:links = p5(1) p5:name = wp05|sig=stop_1 p5:flags = 0x20 p5:position = -43.9371376037598,-17.5723266601563,-171.244964599609 p5:game_vertex_id = 39 p5:level_vertex_id = 246107 p5:links = p6(1) p6:name = wp06|p=0 p6:flags = 0x40 p6:position = -134.095001220703,-11.0177240371704,-151.088150024414 p6:game_vertex_id = 6 p6:level_vertex_id = 120762 p6:links = p7(1) p7:name = wp07|p=0 p7:flags = 0x80 p7:position = -184.912887573242,-20.2046928405762,-152.556259155273 p7:game_vertex_id = 35 p7:level_vertex_id = 65570 p7:links = p8(1) p8:name = wp08|sig=stop_3 p8:flags = 0x100 p8:position = -186.212432861328,-20.2183227539063,-163.448608398438 p8:game_vertex_id = 35 p8:level_vertex_id = 64266 [esc_gon_terrain_guard_2_look] points = p0 p0:name = wp00|a=sit_ass p0:flags = 0x1 p0:position = -184.881851196289,-20.2144546508789,-156.615539550781 p0:game_vertex_id = 35 p0:level_vertex_id = 65564 [esc_gon_terrain_guard_2_walk] points = p0 p0:name = wp00 p0:flags = 0x1 p0:position = -188.99201965332,-20.2273235321045,-156.468597412109 p0:game_vertex_id = 35 p0:level_vertex_id = 61758 История Джона 2 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
makdm 672 Опубликовано 26 мая, 2021 (изменено) 30 минут назад, Emmis сказал: а что в путях может быть не так? В логике в названиях путей не пишется имя смарта. Движок о принадлежности путей к смарту и так знает. Плюс у вас имя пути walk сопадает с именем пути look, а в all.spawn вроде как точки разные. Изменено 26 мая, 2021 пользователем makdm Терпение... И все получится. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Emmis 493 Опубликовано 26 мая, 2021 makdm понял спасибо! Я в логике написал guard_1_walk вместо esc_gon_terrain_guard_1_walk и заработало. А в логике path_look я указал walk, чтобы нпс смотрел в следующую в точку которую идет. Сейчас полностью переделаю пути и поменяю их названия, еще раз спасибо. История Джона 2 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Kelvin 7 Опубликовано 27 мая, 2021 Всем кто это читает добра и позитива. Мне нужно заспавнить пачку трупов на локаций. Спойлер --Взял за основу стандарную функцию по спавну трупов function agr_und_start_spawn_corpse(actor, obj) local corpse_table = { "esc_e2_wolf_spawn" } local way_table = { "spawnd_corpse_1_way" } local obj_corp for k,v in pairs(corpse_table) do obj_corp = spawn_sect(k) -- obj_corp(k) end local obj_way for k,v in pairs(way_table) do obj_way = path_name(k) end local ptr = patrol(path_name) -- local index = p[3] or 0 local se_obj = alife():create(obj_corp,--[[ ptr:point(index),--]] ptr:point(0), ptr:level_vertex_id(0),ptr:game_vertex_id(0)) se_obj:kill() end При загрузке локаций получаю вылет Спойлер [error] Expression : !m_error_code [error] Function : raii_guard::~raii_guard [error] File : E:\sourse\xray-16_clea\src\xrScriptEngine\script_engine.cpp [error] Line : 569 [error] Description : ...alker call of pripyat\gamedata\scripts\xr_effects.script:3418: attempt to call global 'spawn_sect' (a nil value) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
dasehak 9 Опубликовано 27 мая, 2021 Kelvin 'spawn_sect' не существует, если эта функция из другого файла, то нужно писать: название_файла.название_функции (название файла пишется без ".script") Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Kelvin 7 Опубликовано 27 мая, 2021 (изменено) dasehak 17 минут назад, dasehak сказал: Kelvin 'spawn_sect' не существует, если эта функция из другого файла, то нужно писать: название_файла.название_функции (название файла пишется без ".script") Функция вызывается из рескриптора. Ну да, какой-то косяк с перебором или с таблицей. Только я вот и не могу понять в чём проблема?♂️ Изменено 27 мая, 2021 пользователем Kelvin Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ARTEMIA20 9 Опубликовано 27 мая, 2021 Народ! Кто шарит в создании глобальной карты? Хочу сделать нормальную глобальную карту на основе реальной карты ЧЗО. Чтобы там были все локации из трилогии. Но так, чтобы оно выглядело всё логично, красиво и компактно. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 923 Опубликовано 27 мая, 2021 (изменено) 10 минут назад, Kelvin сказал: Функция вызывается из рескриптора. Рескриптор - это тот кто текст переписывает? Или это из фармакологии? Раз уж вызываете функции из логики рестриктора, то воспользуйтесь стандартной spawn_corpse. Передавая в нее ваши данные. Написанная вами имеет массу ошибок и проблем с логикой. Изменено 27 мая, 2021 пользователем denis2000 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Xpyст 22 Опубликовано 27 мая, 2021 на сайте есть тема по созданию бампа ? если да то дайте силку а то я чет сам найти не могу Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Stepan_sovok1917 41 Опубликовано 28 мая, 2021 (изменено) Xpyст http://stalkerin.gameru.net/wiki/index.php?title=Создание_текстур_рельефа_bump http://stalkerin.gameru.net/wiki/index.php?title=Создание,_описание_особенностей_и_объяснение_работы_карт_рельефа https://www.youtube.com/watch?v=TrkOAIZqKTA https://www.youtube.com/watch?v=l8ura_a5CbQ https://www.youtube.com/watch?v=eDwmytAlvwg Изменено 28 мая, 2021 пользователем Stepan_sovok1917 1 Паблик ВК Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Emmis 493 Опубликовано 28 мая, 2021 Привет кто читает. Как сделать чтобы мутанты находились в рестрикторе и не выбегали за него, например когда бегут за игроком? История Джона 2 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Kalambur 25 Опубликовано 28 мая, 2021 (изменено) Подскажите пожалуйста, как резать ап в шлеме?, уменьшаю цифры и нифига.... Изменено 28 мая, 2021 пользователем Kalambur Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
makdm 672 Опубликовано 28 мая, 2021 (изменено) 15 часов назад, Emmis сказал: Как сделать чтобы мутанты находились в рестрикторе и не выбегали за него, Ставите in_restrictor в SDK, а в логике мутантов прописыаете out_restr = .... Изменено 29 мая, 2021 пользователем makdm 1 Терпение... И все получится. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 923 Опубликовано 29 мая, 2021 (изменено) del Изменено 29 мая, 2021 пользователем denis2000 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Kalambur 25 Опубликовано 29 мая, 2021 (изменено) Del. Изменено 29 мая, 2021 пользователем Kalambur Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Misery 433 Опубликовано 30 мая, 2021 (изменено) Написал три диалога для квеста. Первый стартовый типо NPC помощи просит. Второй стартовый если отказаться с первого раза. И третий конечный. Цитата Первый стартовый типо NPC помощи просит Только диалог игрок начинает первым. У меня при нажатии на фразу игра вылетает без лога. Спойлер <dialog id="zat_search_miron_quest_end"> <has_info>zat_search_dialog_activator</has_info> <dont_has_info>zat_search_end_dialog_disable</dont_has_info> <phrase_list> <phrase id="1"> <text>zat_search_miron_quest_end_1</text> <next>2</next> </phrase> <phrase id="3"> <text>zat_search_miron_quest_end_3</text> <action>money_mironpda</action> <action>recolate_mironpda</action> <give_info>zat_search_end_dialog_disable</give_info> </phrase> <phrase id="0"> <text>zat_search_miron_quest_end_0</text> <precondition>actor_has_mironpda</precondition> <next>1</next> </phrase> <phrase id="2"> <text>zat_search_miron_quest_end_2</text> <give_info>zat_b22_givepda_nimble</give_info> <next>3</next> </phrase> </phrase_list> </dialog> <dialog id="zat_search_miron_quest_start"> <dont_has_info>zat_search_start_dialog_disable</dont_has_info> <phrase_list> <phrase id="1"> <text>zat_search_miron_quest_start_1</text> <next>2</next> <next>22</next> <next>222</next> </phrase> <phrase id="3"> <text>zat_search_miron_quest_start_3</text> <give_info>zat_search_start_dialog_disable</give_info> </phrase> <phrase id="2"> <text>zat_search_miron_quest_start_2</text> <action>search_miron_tm</action> <give_info>zat_search_dialog_activator</give_info> <next>3</next> </phrase> <phrase id="222"> <text>zat_search_miron_quest_start_222</text> <precondition>actor_has_mironpda</precondition> <next>4</next> </phrase> <phrase id="22"> <text>zat_search_miron_quest_start_22</text> <give_info>zat_search_dialog_activator_start2</give_info> <give_info>zat_search_start_dialog_disable</give_info> </phrase> <phrase id="0"> <text>zat_search_miron_quest_start_0</text> <next>1</next> </phrase> <phrase id="4"> <text>zat_search_miron_quest_start_4</text> <action>search_miron_tm</action> <action>money_mironpda</action> <action>recolate_mironpda</action> <give_info>zat_search_start_dialog_disable</give_info> <give_info>zat_b22_givepda_nimble</give_info> </phrase> </phrase_list> </dialog> <dialog id="zat_search_miron_quest_start2"> <has_info>zat_search_dialog_activator_start2</has_info> <dont_has_info>zat_search_start_dialog_disable2</dont_has_info> <phrase_list> <phrase id="1"> <text>zat_search_miron_quest_start2_1</text> <next>2</next> <next>22</next> </phrase> <phrase id="4"> <text>zat_search_miron_quest_start2_4</text> <action>search_miron_tm</action> <action>money_mironpda</action> <action>recolate_mironpda</action> <give_info>zat_b22_givepda_nimble</give_info> <give_info>zat_search_start_dialog_disable2</give_info> </phrase> <phrase id="22"> <text>zat_search_miron_quest_start2_22</text> <precondition>actor_has_mironpda</precondition> <next>4</next> </phrase> <phrase id="2"> <text>zat_search_miron_quest_start2_2</text> <action>search_miron_tm</action> <next>3</next> </phrase> <phrase id="0"> <text>zat_search_miron_quest_start2_0</text> <next>1</next> </phrase> <phrase id="3"> <text>zat_search_miron_quest_start2_3</text> <give_info>zat_search_dialog_activator</give_info> <give_info>zat_search_start_dialog_disable2</give_info> </phrase> </phrase_list> </dialog> Спойлер <info_portion id="zat_search_start_dialog_disable"></info_portion> <info_portion id="zat_search_start_dialog_disable2"></info_portion> <info_portion id="zat_search_dialog_activator"></info_portion> <info_portion id="zat_search_dialog_activator_start2"></info_portion> <info_portion id="zat_b22_givepda_nimble"></info_portion> <info_portion id="zat_search_end_dialog_disable"></info_portion> Дополнено 4 минуты спустя Спойлер string id="zat_search_miron_quest_end_0"> <text>Насчёт твоего друга...</text> </string> <string id="zat_search_miron_quest_end_1"> <text>Да, я слушаю. Что там с ним? Где он?</text> </string> <string id="zat_search_miron_quest_end_2"> <text>Он...мёртв, его убил контролёр, при нём был КПК.</text> </string> <string id="zat_search_miron_quest_end_3"> <text>Ээээх, такой хороший парень был. Ладно, держи деньги за возню с контролёром.</text> </string> <string id="zat_search_miron_quest_start2_0"> <text>Ты предлогал мне поискать твоего друга...</text> </string> <string id="zat_search_miron_quest_start2_1"> <text>Да, я тебя помню. Ты хочешь его найти?</text> </string> <string id="zat_search_miron_quest_start2_2"> <text>Да, я хочу его найти.</text> </string> <string id="zat_search_miron_quest_start2_22"> <text>Ты про этот КПК?</text> </string> <string id="zat_search_miron_quest_start2_3"> <text>Спасибо, что взялся за его поиски! Жду!</text> </string> <string id="zat_search_miron_quest_start2_4"> <text>Да! Спасибо...\nОх, не может быть, он мёртв. Держи деньги за возню с контролёром. Эхх, жаль пацана, хорош был.</text> </string> <string id="zat_search_miron_quest_start_0"> <text>Слушаю внимательно.</text> </string> <string id="zat_search_miron_quest_start_1"> <text>У меня был друг, Майроном звать. Хороший парень, есть на какую тему говорить, интересный, помогал с заказами, не отказывал в помощи. И в один момент он просто пропал, я не знаю как и куда.\nСам не могу этим заняться, у меня щас куча заказов.\nПожалуйста, найди его, если он мёртв то принеси его КПК.</text> </string> <string id="zat_search_miron_quest_start_2"> <text>Конечно помогу, друзей в беде не бросают.</text> </string> <string id="zat_search_miron_quest_start_22"> <text>У меня нету времени на это.</text> </string> <string id="zat_search_miron_quest_start_222"> <text>Ты про этот КПК?</text> </string> <string id="zat_search_miron_quest_start_3"> <text>Спасибо большое! Буду ждать.</text> </string> <string id="zat_search_miron_quest_start_4"> <text>Да! Спасибо...\nОх, не может быть, он мёртв. Держи деньги за возню с контролёром. Эхх, жаль пацана, хорош был.</text> </string> Дополнено 27 минуты спустя 27 минут назад, Misery сказал: Написал три диалога для квеста. Первый стартовый типо NPC помощи просит. Второй стартовый если отказаться с первого раза. И третий конечный. Только диалог игрок начинает первым. У меня при нажатии на фразу игра вылетает без лога. Диалог в dialogs_zaton.xml (Показать контент) <dialog id="zat_search_miron_quest_end"> <has_info>zat_search_dialog_activator</has_info> <dont_has_info>zat_search_end_dialog_disable</dont_has_info> <phrase_list> <phrase id="1"> <text>zat_search_miron_quest_end_1</text> <next>2</next> </phrase> <phrase id="3"> <text>zat_search_miron_quest_end_3</text> <action>money_mironpda</action> <action>recolate_mironpda</action> <give_info>zat_search_end_dialog_disable</give_info> </phrase> <phrase id="0"> <text>zat_search_miron_quest_end_0</text> <precondition>actor_has_mironpda</precondition> <next>1</next> </phrase> <phrase id="2"> <text>zat_search_miron_quest_end_2</text> <give_info>zat_b22_givepda_nimble</give_info> <next>3</next> </phrase> </phrase_list> </dialog> <dialog id="zat_search_miron_quest_start"> <dont_has_info>zat_search_start_dialog_disable</dont_has_info> <phrase_list> <phrase id="1"> <text>zat_search_miron_quest_start_1</text> <next>2</next> <next>22</next> <next>222</next> </phrase> <phrase id="3"> <text>zat_search_miron_quest_start_3</text> <give_info>zat_search_start_dialog_disable</give_info> </phrase> <phrase id="2"> <text>zat_search_miron_quest_start_2</text> <action>search_miron_tm</action> <give_info>zat_search_dialog_activator</give_info> <next>3</next> </phrase> <phrase id="222"> <text>zat_search_miron_quest_start_222</text> <precondition>actor_has_mironpda</precondition> <next>4</next> </phrase> <phrase id="22"> <text>zat_search_miron_quest_start_22</text> <give_info>zat_search_dialog_activator_start2</give_info> <give_info>zat_search_start_dialog_disable</give_info> </phrase> <phrase id="0"> <text>zat_search_miron_quest_start_0</text> <next>1</next> </phrase> <phrase id="4"> <text>zat_search_miron_quest_start_4</text> <action>search_miron_tm</action> <action>money_mironpda</action> <action>recolate_mironpda</action> <give_info>zat_search_start_dialog_disable</give_info> <give_info>zat_b22_givepda_nimble</give_info> </phrase> </phrase_list> </dialog> <dialog id="zat_search_miron_quest_start2"> <has_info>zat_search_dialog_activator_start2</has_info> <dont_has_info>zat_search_start_dialog_disable2</dont_has_info> <phrase_list> <phrase id="1"> <text>zat_search_miron_quest_start2_1</text> <next>2</next> <next>22</next> </phrase> <phrase id="4"> <text>zat_search_miron_quest_start2_4</text> <action>search_miron_tm</action> <action>money_mironpda</action> <action>recolate_mironpda</action> <give_info>zat_b22_givepda_nimble</give_info> <give_info>zat_search_start_dialog_disable2</give_info> </phrase> <phrase id="22"> <text>zat_search_miron_quest_start2_22</text> <precondition>actor_has_mironpda</precondition> <next>4</next> </phrase> <phrase id="2"> <text>zat_search_miron_quest_start2_2</text> <action>search_miron_tm</action> <next>3</next> </phrase> <phrase id="0"> <text>zat_search_miron_quest_start2_0</text> <next>1</next> </phrase> <phrase id="3"> <text>zat_search_miron_quest_start2_3</text> <give_info>zat_search_dialog_activator</give_info> <give_info>zat_search_start_dialog_disable2</give_info> </phrase> </phrase_list> </dialog> Инфопоршни в info_zaton.xml (Показать контент) <info_portion id="zat_search_start_dialog_disable"></info_portion> <info_portion id="zat_search_start_dialog_disable2"></info_portion> <info_portion id="zat_search_dialog_activator"></info_portion> <info_portion id="zat_search_dialog_activator_start2"></info_portion> <info_portion id="zat_b22_givepda_nimble"></info_portion> <info_portion id="zat_search_end_dialog_disable"></info_portion> Дополнено 4 минуты спустя Текст в st_dialogs_zaton.xml (если кто будет открывать в DialogEditor) (Показать контент) string id="zat_search_miron_quest_end_0"> <text>Насчёт твоего друга...</text> </string> <string id="zat_search_miron_quest_end_1"> <text>Да, я слушаю. Что там с ним? Где он?</text> </string> <string id="zat_search_miron_quest_end_2"> <text>Он...мёртв, его убил контролёр, при нём был КПК.</text> </string> <string id="zat_search_miron_quest_end_3"> <text>Ээээх, такой хороший парень был. Ладно, держи деньги за возню с контролёром.</text> </string> <string id="zat_search_miron_quest_start2_0"> <text>Ты предлогал мне поискать твоего друга...</text> </string> <string id="zat_search_miron_quest_start2_1"> <text>Да, я тебя помню. Ты хочешь его найти?</text> </string> <string id="zat_search_miron_quest_start2_2"> <text>Да, я хочу его найти.</text> </string> <string id="zat_search_miron_quest_start2_22"> <text>Ты про этот КПК?</text> </string> <string id="zat_search_miron_quest_start2_3"> <text>Спасибо, что взялся за его поиски! Жду!</text> </string> <string id="zat_search_miron_quest_start2_4"> <text>Да! Спасибо...\nОх, не может быть, он мёртв. Держи деньги за возню с контролёром. Эхх, жаль пацана, хорош был.</text> </string> <string id="zat_search_miron_quest_start_0"> <text>Слушаю внимательно.</text> </string> <string id="zat_search_miron_quest_start_1"> <text>У меня был друг, Майроном звать. Хороший парень, есть на какую тему говорить, интересный, помогал с заказами, не отказывал в помощи. И в один момент он просто пропал, я не знаю как и куда.\nСам не могу этим заняться, у меня щас куча заказов.\nПожалуйста, найди его, если он мёртв то принеси его КПК.</text> </string> <string id="zat_search_miron_quest_start_2"> <text>Конечно помогу, друзей в беде не бросают.</text> </string> <string id="zat_search_miron_quest_start_22"> <text>У меня нету времени на это.</text> </string> <string id="zat_search_miron_quest_start_222"> <text>Ты про этот КПК?</text> </string> <string id="zat_search_miron_quest_start_3"> <text>Спасибо большое! Буду ждать.</text> </string> <string id="zat_search_miron_quest_start_4"> <text>Да! Спасибо...\nОх, не может быть, он мёртв. Держи деньги за возню с контролёром. Эхх, жаль пацана, хорош был.</text> </string> Извините, я просто гигант мысли и отец Русской демократии. Я дебил который забыл указать из какого скрипта функции. Изменено 30 мая, 2021 пользователем Misery Clear Sky: Gunslinger Addon Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Doloremque 527 Опубликовано 30 мая, 2021 Иногда происходит вот такой случайный вылет. С чем связано - вообще не могу понять. Помогает только новая игра. Expression : !m_error_code Function : raii_guard::~raii_guard File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp Line : 748 Description : c:\farthest edge\gamedata\scripts\state_mgr.script:247: C stack overflow Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 923 Опубликовано 30 мая, 2021 detoxe Причина вылета - переполнение стека при выполнении указанного скрипта. НО причина, как правило, совсем не в скрипте на котором переполнение произошло - причина может быть связана как с логикой, так и скриптами. А уж поиск этой причины чрезвычайно увлекательное занятие без конкретных рецептов. 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Kalambur 25 Опубликовано 30 мая, 2021 Подскажите пожалуйста, как и в каком файле можно поставить ограничение на макс. 8 часов сон ? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 923 Опубликовано 31 мая, 2021 Kalambur ui_sleep_dialog.script Там обрабатывается интерфейс диалогового окна сна. 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Kalambur 25 Опубликовано 31 мая, 2021 (изменено) denis2000 Спойлер local sleep_control = nil local wide = true class "sleep_dialog" (CUIScriptWnd) function sleep_dialog:__init() super() self:SetWndRect(Frect():set(0,0,1024,768)) self:SetAutoDelete(true) local xml = CScriptXmlInit() xml:ParseFile("ui_sleep_dialog.xml") self.back = xml:InitStatic("background", self) -- self.sleep_static = xml:InitSleepStatic("sleep_static", self.back) self.sleep_static = xml:InitStatic("sleep_static", self.back) self.sleep_static2 = xml:InitStatic("sleep_static", self.back) self.static_cover = xml:InitStatic("static_cover", self.back) self.st_marker = xml:InitStatic("st_marker", self.static_cover) self.sleep_st_tbl = {} for i = 1, 24 do self.sleep_st_tbl = xml:InitStatic("sleep_st_"..i, self.back) end self.time_track = xml:InitTrackBar("time_track", self.back) self:Register(self.time_track, "time_track") self.btn_sleep = xml:Init3tButton("btn_sleep", self.back) self:Register(self.btn_sleep, "btn_sleep") self.btn_cancel = xml:Init3tButton("btn_cancel", self.back) self:Register(self.btn_cancel, "btn_cancel") self.sleep_mb = CUIMessageBoxEx() self.sleep_mb:SetAutoDelete(true) self:Register(self.sleep_mb, "sleep_mb")-------------------------------------------------------------------------------- self:AddCallback("btn_sleep", ui_events.BUTTON_CLICKED, self.OnButtonSleep, self) self:AddCallback("btn_cancel", ui_events.BUTTON_CLICKED, self.OnButtonCancel, self) self:AddCallback("sleep_mb", ui_events.MESSAGE_BOX_OK_CLICKED, self.OnMessageBoxOk, self)end function sleep_dialog:Initialize() local cur_hours = level.get_time_hours() for i = 1, 24 do local hours = cur_hours + i if(hours>=24) then hours = hours - 24 end self.sleep_st_tbl:TextControl():SetText(hours..game.translate_string("st_sleep_hours")) end local delta = math.floor(591/24*cur_hours) local r = Frect():set(delta,413,591,531) self.sleep_static:SetTextureRect(r) local width = 591-delta if(wide) then width = width*0.8 end self.sleep_static:SetWndSize(vector2():set(width, 118)) r = Frect():set(0,413,delta,531) self.sleep_static2:SetTextureRect(r) local width = delta if(wide) then width = width*0.8 end self.sleep_static2:SetWndSize(vector2():set(width, 118)) local pos = self.sleep_static2:GetWndPos() pos.x = self.sleep_static:GetWndPos().x+self.sleep_static:GetWidth() self.sleep_static2:SetWndPos(pos)end function sleep_dialog:__finalize() sleep_control = nilend function sleep_dialog:TestAndShow() --[[ if (self.ph_sleepbag_id and self.item_section) then local sim = alife() sim:create(self.item_section,db.actor:position(),0,0,0) local se_bag = sim:object(self.ph_sleepbag_id) if (se_bag) then sim:release(se_bag,true) end self.ph_sleepbag_id = nil end --]] -- Prevent sleep if not tired, but only if sleep deprivation is enabled. -- If the player has drunk too many energy drinks they will be too wired to sleep. --[[ if (axr_main.config:r_value("mm_options","enable_sleep_deprived",1,false) == true) then if (sleep_dep) then if (sleep_dep.caff_chk and sleep_dep.caff_chk > 0) then SetHudMsg(game.translate_string("st_sleep_awake_wired"),4) return elseif (sleep_dep.last_sleep and sleep_dep.no_sleep and sleep_dep.last_sleep < sleep_dep.no_sleep) then SetHudMsg(game.translate_string("st_sleep_awake"),4) return end end end --]] local bleeding = db.actor.bleeding > 0 local radiation = fasle --db.actor.radiation > 0 -- Prevent sleep if bleeding and/or iradiated. if (bleeding or radiation) then if (bleeding and radiation) then SetHudMsg(game.translate_string("st_sleep_bleeding_irradiated"),5) elseif (bleeding) then SetHudMsg(game.translate_string("st_sleep_bleeding"),4) elseif (radiation) then SetHudMsg(game.translate_string("st_sleep_irradiated"),4) end return end -- Prevent sleep if an emission or psi-storm currently ongoing. if (xr_conditions.surge_started() or psi_storm_manager.is_started()) then if not (surge_manager.actor_in_cover()) then SetHudMsg(game.translate_string("st_sleep_event"),4) return end end self:Initialize() self:ShowDialog(true)end function sleep_dialog:Update() CUIScriptWnd.Update(self) if self:IsShown() then local sleep_time = self.time_track:GetIValue()-1 local x = math.floor(591/24*sleep_time) if(x==0) then x = 5 end if(wide) then x = x*0.8 end self.st_marker:SetWndPos(vector2():set(x, 0)) endend function sleep_dialog:OnTrackButton()end function sleep_dialog:OnButtonSleep() if self:IsShown() then self:HideDialog() end utils.save_var(db.actor,"heli_enemy_flag",nil) xr_effects.disable_ui(db.actor, nil) level.add_cam_effector("camera_effects\\sleep.anm", 10, false, "ui_sleep_dialog.dream_callback") level.add_pp_effector("sleep_fade.ppe", 11, false) _G.mus_vol = get_console():get_float("snd_volume_music") _G.amb_vol = get_console():get_float("snd_volume_eff") get_console():execute("snd_volume_music 0") get_console():execute("snd_volume_eff 0") if self.forced then level.add_cam_effector("camera_effects\\surge_02.anm", 10, false, "ui_sleep_dialog.dream_callback") else level.add_cam_effector("camera_effects\\sleep.anm", 10, false, "ui_sleep_dialog.dream_callback") get_console():execute("snd_volume_music 0") get_console():execute("snd_volume_eff 0") end level.add_pp_effector("surge_fade.ppe", 11, false) --sleep_fade.ppe db.actor:give_info_portion("actor_is_sleeping") end function sleep_dialog:OnButtonCancel() if (self:IsShown()) then self:HideDialog() end --db.actor:give_info_portion("tutorial_sleep") disable_info("actor_is_sleeping") disable_info("sleep_active")end function sleep_dialog:OnMessageBoxOk() db.actor:give_info_portion("tutorial_sleep") disable_info("actor_is_sleeping") disable_info("sleep_active")end --------------------------------------------------------------------------------function dream_callback() if sleep_control.forced then level.add_cam_effector("camera_effects\\surge_01.anm", 10, false, "ui_sleep_dialog.dream_callback2") else level.add_cam_effector("camera_effects\\sleep.anm", 10, false, "ui_sleep_dialog.dream_callback2") end local hours = sleep_control.forced or sleep_control.time_track:GetIValue() db.actor.satiety = hours*0.05 db.actor.psy_health = hours*0.1 --printf("dream_callback hours=%s",hours) level.change_game_time(0,hours,0) surge_manager.get_surge_manager().time_forwarded = true psi_storm_manager.get_psi_storm_manager().time_forwarded = true if(surge_manager.is_started() and level_weathers.get_weather_manager().weather_fx) then level.stop_weather_fx() end level_weathers.get_weather_manager():select_weather(true) db.actor.power = 1end function dream_callback2() xr_effects.enable_ui(db.actor, nil) get_console():execute("snd_volume_music "..tostring(_G.mus_vol)) get_console():execute("snd_volume_eff "..tostring(_G.amb_vol)) _G.amb_vol = 0 _G.mus_vol = 0 disable_info("tutorial_sleep") disable_info("actor_is_sleeping") disable_info("sleep_active") local flist = getFS():file_list_open_ex("$game_saves$", bit_or(FS.FS_ListFiles,FS.FS_RootOnly),"*".. ui_load_dialog.saved_game_extension) local f_cnt = flist and flist:Size() or 0 local inc = 0 if (f_cnt > 0) then flist:Sort(FS.FS_sort_by_modif_down) for it=0, f_cnt-1 do local file_name = flist:GetAt(it):NameFull():sub(0,-6):lower() -- grab last modified quicksave increment count local d = tonumber( string.match(file_name,"sleep_autosave(%d+)") ) if (d) then inc = d break end end end inc = inc >= axr_main.config:r_value("mm_options","quicksave_cnt",2,5) and 1 or inc + 1 get_console():execute("save sleep_autosave"..inc)end function sleep() if (sleep_control==nil) then sleep_control = ui_sleep_dialog.sleep_dialog() end sleep_control.forced = nil sleep_control.time_track:SetCurrentValue() sleep_control:TestAndShow()end function sleep_forced(hours) if(sleep_control==nil) then sleep_control = ui_sleep_dialog.sleep_dialog() end sleep_control.forced = hours or math.random(3,9) sleep_control:OnButtonSleep()end function main() sleep()end function sleep_bag(ph_sleepbag_id,sec) if (sleep_control==nil) then sleep_control = ui_sleep_dialog.sleep_dialog() end sleep_control.forced = nil sleep_control.item_section = sec sleep_control.ph_sleepbag_id = ph_sleepbag_id sleep_control.time_track:SetCurrentValue() sleep_control:TestAndShow() return sleep_controlend подскажите пожалуйста что именно поправить, чтобы ограничение было максимум 8 часов поспать ! Изменено 31 мая, 2021 пользователем Kalambur Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Emmis 493 Опубликовано 31 мая, 2021 Привет всем! Не знаю возможно ли такое. Можно ли сделать так, чтобы после получения поршня через некоторое время (например 10 сек.) актеру приходило сообщение от нпс, и можно ли в этом сообщении сделать выдачу поршня? История Джона 2 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Neptun 882 Опубликовано 31 мая, 2021 9 минут назад, Emmis сказал: Можно ли сделать так, чтобы после получения поршня через некоторое время (например 10 сек.) актеру приходило сообщение от нпс, и можно ли в этом сообщении сделать выдачу поршня? Ну, как-то так. Логика рестриктора: [logic] active = sr_idle@info [sr_idle@info] on_info = {+инфопорция} sr_idle@time [sr_idle@time] on_game_timer = 100 | %=send_tip(st_ссылка_на_текст:иконка_из_news) +инфопорция% sr_idle@nil [sr_idle@nil] 2 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты