Overf1rst 1 434 Опубликовано 1 июля, 2020 Тема посвящена моддингу на платформе Зов Припяти. Правила темы: Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть. Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода. Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа). Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться. 16 9 1 1 2 6 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Redix 94 Опубликовано 27 июля, 2023 vasyan54636 Смотри скрипт cam_effector_sets, думаю разберешься ;) Дополнено 0 минут спустя При добавлении новых анимпоинтов появляется такая фигня в логе: Спойлер fov direction for loophole animpoint_sit_ass is setup incorrectly enter direction for loophole animpoint_sit_ass is setup incorrectly fov direction for loophole animpoint_sit_ass is setup incorrectly enter direction for loophole animpoint_sit_ass is setup incorrectly fov direction for loophole animpoint_sit_ass is setup incorrectly enter direction for loophole animpoint_sit_ass is setup incorrectly Как решить? 1 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Prostomod 1 109 Опубликовано 27 июля, 2023 (изменено) Redix Вообще, я никогда не задавался таким вопросом и просто игнорировал эту проблему, но сейчас глянул. Очень похоже, что они появляются, когда в файле smart_cover_animpoint_<имя>.script вызывается функция smart_covers_loophole_animpoint_<имя>.get_loophole и в качестве аргументов передаётся нулевой (или почти нулевой) вектор (или, точнее, _direction поля возвращаются нулевые). Ошибка не критическая т.к. там он автоматически заменяется на вектор (x = 0.0, y = 0.0, z = 1.0). Скорее всего, чинится если поменять аргументы на достаточно длинные векторы, которые безопасно можно нормализовать (не близкие к (0, 0, 0)). Разве что позиция (2 аргумент в get_loophole) может быть (0, 0, 0). Изменено 27 июля, 2023 пользователем Prostomod 1 Мод в разработке - X-7: Эпицентр Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vladvexa188 5 Опубликовано 27 июля, 2023 Ребят сделал место для сна и когда пытаюсь скомпилировать спаун даёт такую ошибку: Level [escape] : searching for AI map separators space restrictors ! 8 nodes are disconnected! FATAL ERROR [error]Expression : nodes.size() + m_internal.size() == level_graph().header().vertex_count() [error]Function : CSpaceRestrictorWrapper::verify_connectivity [error]File : f:\s.t.a.l.k.e.r.sources\x-ray_universal_compiler\src\utils\xrcompiler_ai\space_restrictor_wrapper.cpp [error]Line : 284 [error]Description : Restrictor separates AI map into several disconnected components [error]Arguments : esc_sr_sleep_1 stack trace: 0033:0000000056CDBDB4 xrCore.dll, xrDebug::fail() 0033:00000000800CCBEF xrCompiler_AI.dll 0033:00000000800C9291 xrCompiler_AI.dll 0033:00000000800C211E xrCompiler_AI.dll 0033:00000000800C2FCB xrCompiler_AI.dll 0033:00000000800D01FB xrCompiler_AI.dll, xrCompileAI() Как правится? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Redix 94 Опубликовано 27 июля, 2023 vladvexa188 Попробуй добавить в батник ключ -no_separator_check Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gerbys 6 Опубликовано 28 июля, 2023 Доброго времени суток! Как заспавнить предмет в инвентарь мертвого НПС после опредёленного условия (например, после диалога с другим НПС)? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Boomer 251 Опубликовано 28 июля, 2023 (изменено) 2 часа назад, Gerbys сказал: Доброго времени суток! Как заспавнить предмет в инвентарь мертвого НПС после опредёленного условия (например, после диалога с другим НПС)? Можно после диалога выдать инфопоршень, а затем в логике рестриктора написать on_info = {+инфопоршень} sr_idle@nil %=spawn_object_in(название предмета:story_id нпс) % Изменено 28 июля, 2023 пользователем Boomer 1 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gendel 201 Опубликовано 28 июля, 2023 (изменено) Здравия адекватным! Апрошный форум так себе организован, потому и вопрошаю в первом попавшемся разделе, у людей ведающих ) Суть: от скуки и отсутствия нового решил погонять в старое, а именно в АМК-1.4 (не 1.4.1). А там косяков валом, один из них - задания не сдать, ежели неписи либо монстры волею Зоны помре, а не токмо Меченого, подрядившегося на задачи те. От он, горемычный, недельный срок, на то отведённый, и трудится, патронов и ствола не жалея, орды татей да чудовищ невиданных выкашивая, а злые квестодатели не желают вознаграждать заслуженно. Можно как-то скриптами животворными усовестить бояр тех нерадивых, чтобы не было незаслуженно проваленного и репутацию защитить добра молодца? Изменено 28 июля, 2023 пользователем Gendel Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ian98 225 Опубликовано 28 июля, 2023 (изменено) Gendel сделать квестовиков бессмертными? если в зп есть такая штука как invulnerable, то можно по идее на нет спавна в мотиваторе по именам приделать нужным нпс бессмертие. Но амк это не зп. движок там от тч видимо, оригинальный. В оригинальном тч такой фичи нет, можно по примеру сахарова из конфигов(см. оригинальная gamedata\config\creatures\m_stalker по запросу stalker_sakharov) Как один из вариантов обратится к иммунитетам сахарова можно прописав нужного нпс в spawn_section или из all.spawn, возможно.. Можно не парится с конфигами и по имени профиля например апдейтить из биндера хп в 1 при любом хите в оригинальном тч. Но такое бессмертие до фатального хита, например в голову. Может еще способы есть. Надо подумать Изменено 28 июля, 2023 пользователем ian98 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mass 78 Опубликовано 28 июля, 2023 26 минут назад, ian98 сказал: В оригинальном тч такой фичи нет Вы ошибаетесь! В ТЧ этот метод есть, просто в lua_help отсутствует! 19 часов назад, Redix сказал: При добавлении новых анимпоинтов появляется такая фигня в логе: Покажите функцию get_loophole данного анимпоинта Дополнено 9 минуты спустя В 22.07.2023 в 19:18, makdm сказал: log_file:close() Отличная идея закрыть файл! Про это я забыл в итоге при ошибке я терял всю инфу! Единственое маленькое замечание я бы кешировал переменную log_path 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Redix 94 Опубликовано 28 июля, 2023 @Mass smart_covers_loophole_animpoint_sit_ass.get_loophole("animpoint_sit_ass", vector():set(0,0,0), vector():set(0,0,0), vector():set(0,0,0)) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mass 78 Опубликовано 28 июля, 2023 Redix Это ссылка на саму функцию. В файле smart_covers_loophole_animpoint_sit_ass функцию get_loophole покажите! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Redix 94 Опубликовано 28 июля, 2023 Mass Аа, понял. Вот: Спойлер function get_loophole(id, position, fov_direction, enter_direction) return { id = id, fov_position = position, fov_direction = fov_direction, danger_fov_direction = vector():set(-1,0,0), enter_direction = enter_direction, usable = true, fov = 45.0, danger_fov = 45.0, range = 70.0, actions = { idle = { animations = { idle = { "sit_2_idle_0", }, }, }, lookout = { animations = { idle = { "idle_0_to_sit_2", }, }, }, fire = { animations = { idle = { "idle_0_to_sit_2", }, shoot = { "idle_0_to_sit_2", }, }, }, fire_no_lookout = { animations = { idle = { "idle_0_to_sit_2", }, shoot = { "idle_0_to_sit_2", }, }, }, reload = { animations = { idle = { "idle_0_to_sit_2", }, }, }, }, transitions = { { action_from = "idle", action_to = "lookout", weight = 1.2, animations = { "idle_0_to_sit_2", }, }, { action_from = "lookout", action_to = "idle", weight = 1.2, animations = { "idle_0_to_sit_2", }, }, { action_from = "idle", action_to = "fire", weight = 1.2, animations = { "idle_0_to_sit_2", }, }, { action_from = "fire", action_to = "idle", weight = 1.2, animations = { "idle_0_to_sit_2", }, }, { action_from = "idle", action_to = "fire_no_lookout", weight = 1.2, animations = { "idle_0_to_sit_2", }, }, { action_from = "fire_no_lookout", action_to = "idle", weight = 1.2, animations = { "idle_0_to_sit_2", }, }, }, } end Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mass 78 Опубликовано 28 июля, 2023 11 минут назад, Redix сказал: smart_covers_loophole_animpoint_sit_ass.get_loophole("animpoint_sit_ass", vector():set(0,0,0), vector():set(0,0,0), vector():set(0,0,0)) Попробуйте smart_covers_loophole_animpoint_sit_ass..get_loophole("animpoint_sit_ass", vector():set(0,0,0), vector():set(0,0,-1), vector():set(0,0,-1)) 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Redix 94 Опубликовано 28 июля, 2023 @Mass @Prostomod Спасибо, помогли! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Hunter 2 084 Опубликовано 28 июля, 2023 Почему при телепортации на 5 метров вперед через Повелитель Зоны, ГГ падает под текстуры? Как правильно задавать координаты? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Paracetamol 502 Опубликовано 28 июля, 2023 4 минуты назад, Hunter сказал: Почему при телепортации на 5 метров вперед через Повелитель Зоны, ГГ падает под текстуры? Как правильно задавать координаты? https://disk.yandex.ru/d/94gmWlnul29HQw установи лучше этот мод на noclip, активируется на клавишу V 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gendel 201 Опубликовано 28 июля, 2023 ian98, не сдаются формально выполненные задания, например: бармен просил бандосов зачистить на Агро, а там кровосос (если что, некоторые из них в том моде почти неубиваемы из стрелкового оружия любого калибра, только гранатами) прошёлся и всех положил - в итоге ни бандосов на локации, кроме трупов, ни задание не сдать. Или зачистить собак перед Баром - динамические аномалии кого-то из живности сожрали или ещё как, но результат тот же... Вопрос был в том, можно ли, как в "беседкиных" игорках с их "setstage", например, завершить такие квесты консольно или ещё как. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gerbys 6 Опубликовано 29 июля, 2023 Какой самый простой способ создать новый предмет, при использовании которого открывается окно с картинкой/текстом? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Hunter 2 084 Опубликовано 29 июля, 2023 Gerbys ты про Gui окна? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gerbys 6 Опубликовано 29 июля, 2023 6 минут назад, Hunter сказал: Gerbys ты про Gui окна? Да, думаю про них) Например, появляется такое окно в ARC аддоне на контейнеры для артов, что-то подобное хочу сделать, но для реализации карт, записок, картинок и тд Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Prostomod 1 109 Опубликовано 29 июля, 2023 Gerbys Ну... Тут без скриптинга вообще никак, даже если переносить готовое GUI из другого мода (наверно, это и есть самый простой способ). Ещё встречал как-то давно одну программку, которая представляет из себя конструктор GUI из отдельных компонентов специально для сталкера, но я не помню, как она называется (но точно знаю, что такая есть). Сейчас искать её не могу, если завтра найду (и до меня ссыль не кинут) - скину ссылку. Но там всё-также нужно будет писать скрипты (вёрстка интерфейса просто упрощается). 1 1 Мод в разработке - X-7: Эпицентр Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
CiberZold 574 Опубликовано 29 июля, 2023 3 часа назад, Gendel сказал: Вопрос был в том, можно ли, как в "беседкиных" игорках с их "setstage", например, завершить такие квесты консольно или ещё как. ну консольно такие квесты нельзя завершить, а вот убрав в диалоге нужного персонажа условие на диалог при сдачи квеста или на проверку нужного предмета, можно закрыть квест, а потом всё в файле диалога вернуть обратно. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ian98 225 Опубликовано 29 июля, 2023 Gendel нужно по нажатию кнопки выполнить вторички или их провалить, или сделать автоматически раз в сутки например проваливается квесты или выполняются? Если так, то, возможно, есть способ. Нужно смотреть луа хелп. Да и без скриптов, по-моему, есть конфиг, в котором указывается время на выполнение вторичных квестов. Забыл название. Но мне кажется я не так понял, в смысле что проваливать миссию тебе точно не надо, ну а тогда выполнять по халяве? Это ж по халяве будет. Да и бармен от того не перестанет просить убить уже мертвых бандитов. Странно это, что вообще просит, звучит так как будто перед выдачей квеста не проверяется живы ли бандиты. Ну я вообще не работал никогда именно с заданиями и не уверен как это точно работает. Мне самому нужно изучать этот момент. Но выполнить определенные квесты по кнопке сделать можно попробовать. Вроде не сложно это Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Paracetamol 502 Опубликовано 29 июля, 2023 6 часов назад, Gerbys сказал: Какой самый простой способ создать новый предмет, при использовании которого открывается окно с картинкой/текстом? Здесь расписал "рецепт приготовления": Спойлер В файле bind_stalker.script находим функцию function actor_binder:use_inventory_item(obj) Чуть ниже добавил новое условие if obj~=nil then test_t.on_use_item(obj) end Вся функция должна выглядить примерно вот так: function actor_binder:use_inventory_item(obj) if obj~=nil then test_t.on_use_item(obj) end if(obj) then local s_obj = alife():object(obj:id()) if(s_obj) and (s_obj:section_name()=="drug_anabiotic") then xr_effects.disable_ui_only(db.actor, nil) level.add_cam_effector("camera_effects\\surge_02.anm", 10, false, "bind_stalker.anabiotic_callback") level.add_pp_effector("surge_fade.ppe", 11, false) give_info("anabiotic_in_process") _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") end end end Создаём файл test_t.script в него пишем это: function on_use_item(sect) --Переменные local actor=db.actor local item_name=sect:section() local actor_pos=db.actor:position() local active_slot=db.actor:active_slot() local active_item=db.actor:active_item() local pistol_in_slot=db.actor:item_in_slot(2) local rifle_in_slot=db.actor:item_in_slot(3) local outfit_in_slot=db.actor:item_in_slot(7) local helm_in_slot=db.actor:item_in_slot(12) --Коллбеки if item_name=="Секция_твоего_предмета_для_гуи" then _g.run_gui(gotov_gui.test_gui()) -- это сам вызов гуи end end Теперь перходим в файл _g.script там добавим в конец функцию function run_gui(gui, close_inv) if close_inv == true then gui:ShowDialog(true) game_hide_menu() level.show_weapon(false) else gui:ShowDialog(true) end end Теперь создания самого гуи: проще всего создать гуи в программе Stalker UI Creator, там всё интуитивно понятно, есть вроде даже какие-то ролики на ютубе, но точно не знаю. после создания гуи в коллбеке выши нужно прописать так сказать название гуишки, пишется оно здесь: class "test_gui" (CUIScriptWnd) Вроде всё описал... 2 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
bsanek628 2 Опубликовано 29 июля, 2023 В 28.07.2023 в 00:27, Hunter сказал: bsanek628 пропиши Отбойнику анимации Спаса, ты имел ввиду, вылет с логом: motion not found: protecta_reload? Он самый. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты