Overf1rst 1 510 Опубликовано 1 июля, 2020 Тема посвящена моддингу на платформе Зов Припяти. Правила темы: Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть. Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода. Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа). Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться. 19 10 1 1 2 6 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mass 117 Опубликовано 19 января 8 минут назад, Вереск сказал: Но у некоторых мутантов это не работает, как и у аномалий Не сталкивался с таким! У кого конкретно не работает? Может звук отсутствует? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Вереск 35 Опубликовано 19 января 1 минуту назад, Mass сказал: Не сталкивался с таким! У кого конкретно не работает? Может звук отсутствует? Сейчас точно не скажу (ковырял это в 2021-2022 где-то). Да и вопрос не в этом, а в том, как сделать так, чтобы аномалии тоже, как в конфигах мутантов читали звуки с окончанием на "_". Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mass 117 Опубликовано 19 января 10 минут назад, Вереск сказал: непонятно когда она работает, а когда нет Напрашивается вопрос. А зачем несколько звуков для цикличных звуков? Дополнено 6 минуты спустя 3 минуты назад, Вереск сказал: как сделать так, чтобы аномалии тоже, как в конфигах мутантов читали звуки с окончанием на "_ Править движок файл CustomZone.cpp , либо проверять на апдейте аномалии и подменять звук в зависимости от расстоянии Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Вереск 35 Опубликовано 19 января 8 минут назад, Mass сказал: Напрашивается вопрос. А зачем несколько звуков для цикличных звуков? Дополнено 6 минуты спустя Править движок файл CustomZone.cpp , либо проверять на апдейте аномалии и подменять звук в зависимости от расстоянии Потому что с точки зрения саунд-дизайна, это слышится плохо, когда играется один и тот же звук. К примеру заходя в здания и слыша разные скрипы это больше даёт погружения и атмосферы, чем просто зацикленный один и тот же вариант. Видимо придётся ковыряться в движке, в общем спасибо за информацию. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ian98 317 Опубликовано 19 января Вереск аномалиям можно прописать отдельный биндер, как у сталкеров или монстров, а там уже делать практически любой маневр. Созданшь копию скрипта xr_motivator. В конфиге аномалий, в секции anomaly_base, подвязываешь свой скрипт строчкой script_binding(я уж точно не помню как там писать). В общем, можем подумать над этим вариантом позже. Почти уверен, что так можно звуки подвязать, как уже писали, через апдейт Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Вереск 35 Опубликовано 19 января 1 минуту назад, ian98 сказал: Вереск аномалиям можно прописать отдельный биндер, как у сталкеров или монстров, а там уже делать практически любой маневр. Созданшь копию скрипта xr_motivator. В конфиге аномалий, в секции anomaly_base, подвязываешь свой скрипт строчкой script_binding(я уж точно не помню как там писать). В общем, можем подумать над этим вариантом позже. Почти уверен, что так можно звуки подвязать, как уже писали, через апдейт Если есть статья на эту тему, закинь, прочту. Просто в скриптах и прочем я не копался сильно (чисто по звуку работаю, да материалам). Сейчас попробую пока так, как ты выше описал Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ian98 317 Опубликовано 19 января Вереск Вереск можно по примеру биндера вертолетов сделать, потому что там как раз через биндер звуки тоже прописывали сами же разрабы(bind_heli). Интуитивно чисто. А так, за комп сяду, покрвыряюсь. Мне кажется можно сделать 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Вереск 35 Опубликовано 19 января 1 минуту назад, ian98 сказал: Вереск Вереск можно по примеру биндера вертолетов сделать, потому что там как раз через биндер звуки тоже прописывали сами же разрабы(bind_heli). Интуитивно чисто. А так, за комп сяду, покрвыряюсь. Мне кажется можно сделать Окей. Я пока что прибиндил к zone_base новый скрипт, но честно внутри самого скрипта я ничего не понимаю, пока это для меня выглядит чисто, как набор символов страшный) Дополнено 2 минуты спустя 23 минуты назад, Mass сказал: Напрашивается вопрос. А зачем несколько звуков для цикличных звуков? Дополнено 6 минуты спустя Править движок файл CustomZone.cpp , либо проверять на апдейте аномалии и подменять звук в зависимости от расстоянии Проверил работает ли логика в рестрикторе, выдало вот это Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mass 117 Опубликовано 19 января 6 минут назад, Вереск сказал: Проверил работает ли логика в рестрикторе, выдало вот это В bind_anomaly_zone и в bind_anomaly_field в апдейте нужно делать 11 минут назад, Вереск сказал: Я пока что прибиндил к zone_base новый скрипт Разумеется так это не будет работать! Нужно понимать структуру класса, какие методы они используют и прочие вещи Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Вереск 35 Опубликовано 19 января 14 минут назад, Mass сказал: В bind_anomaly_zone и в bind_anomaly_field в апдейте нужно делать Разумеется так это не будет работать! Нужно понимать структуру класса, какие методы они используют и прочие вещи Ничего не понял, причём тут "bind_anomaly_zone и в bind_anomaly_field и классы"? Я говорю про обычный рестриктор со звуком. Я прописал логику, как ты описал: [logic] active = sr_idle [sr_idle] on_actor_in_zone = имя рестриктора | %=play_sound(звук) Но при заходе в него, ловлю вылет, который скинул выше. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mass 117 Опубликовано 19 января (изменено) 43 минуты назад, Вереск сказал: ловлю вылет Спойлер [logic] active = sr_idle@1 [sr_idle@1] on_actor_in_zone = имя рестриктора | sr_idle@2 [sr_idle@2] on_info = %=play_sound_looped(звук) % on_actor_not_in_zone = имя рестриктора | sr_idle@3 [sr_idle@3] on_info = sr_idle@1%=stop_sound_looped% Изменено 19 января пользователем Mass Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Вереск 35 Опубликовано 19 января 3 минуты назад, Mass сказал: Логика (Скрыть контент) [logic] active = sr_idle@1 [sr_idle@1] on_actor_in_zone = имя рестриктора | sr_idle@2 [sr_idle@2] on_info = %=play_sound_looped(звук) % on_actor_not_in_zone = имя рестриктора | sr_idle@3 [sr_idle@3] on_info = sr_idle@1%stop_sound_looped% Да, вот так он работает, спасибо. Другой вопрос, а если напишу так, будет работать? [logic] active = sr_idle@1 [sr_idle@1] on_actor_not_in_zone = имя рестриктора | sr_idle@2 [sr_idle@2] on_info = %=play_sound_looped(звук) % То есть в зоне рестриктора, будет играться звук, даже если нету там актора Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mass 117 Опубликовано 19 января 2 минуты назад, Вереск сказал: будет играться звук Пока игрок не уйдет в оффлайн (слишком далеко от рестриктора) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Вереск 35 Опубликовано 19 января 1 минуту назад, Mass сказал: Пока игрок не уйдет в оффлайн (слишком далеко от рестриктора) Ну в принципе так и надо. Попробую сейчас сделать. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Skala 317 Опубликовано 19 января Здравствуйте, не работает логика рестриктора. При получении задания на енго не падает метка, и когда заходишь в его зону не появляется надпись "Спать", при нажатии F ничего не происходит. Спойлер [story_object] story_id = mil_village_sleep_sr [logic] cfg = scripts\millitary\mil_village_sleep_sr.ltx Спойлер [logic] active = sr_idle@start [sr_idle@start] on_info = {-village_sleep_end =actor_in_zone(mil_village_sleep_sr)} sr_idle@tutorial %=run_tutorial(village_sleep)% on_info2 = {+village_sleep_end} sr_idle@nil [sr_idle@tutorial] on_info = {!actor_in_zone(mil_village_sleep_sr)} sr_idle@start %=stop_tutorial% on_info2 = {+village_sleep_end} sr_idle@nil on_info3 = {!has_active_tutorial} sr_idle@start on_game_timer = 10 | sr_idle@nil %=play_sound(clown_about_cocksuckers) =set_time(02:00) =run_postprocess(fade_in_out_9_sec)% on_game_timer2 = 90 | sr_idle@nil %=run_postprocess(fade_in_out_9_sec)% [sr_idle@nil] Спойлер <village_sleep> <global_wnd/> <item> <disabled_key>quit</disabled_key> <length_sec/> <action id="use" finalize="1">xr_effects.village_sleep</action> <guard_key>use</guard_key> <grab_input>0</grab_input> <main_wnd> <auto_static start_time="0" length_sec="5000" x="512" y="660" width="300" height="60" alignment="c" stretch="1" la_cyclic="1" la_texture="1" la_alpha="1"> <text font="graffiti22" r="225" g="225" b="250" a="255" align="c">village_sleep_text</text> </auto_static> </main_wnd> </item> </village_sleep> Спойлер И ещё вопрос: как сделать так, чтобы после туториала игрок смотрел в определённую точку? Я сначала хотел сделать через точки walk и look, но для точки walk нужна ai сетка, которая в этом месте генерироваться не хочет. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
JimHammond 1 Опубликовано 19 января Mawrak каким способом можно найти эти секции? Ручками, открывать каждый файл? Или проггой по типу Winmerge? Или для сталкера есть уже написанная кем-то прогга? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Neptun 887 Опубликовано 19 января 1 час назад, Skala сказал: чтобы после туториала игрок смотрел в определённую точку? function actor_need_look_way(actor, npc, p) local patrol_point = p[1] local patrol_point_index = p[1] or 0 if patrol_point == nil then abort("Wrong parameters in 'actor_need_look_way' function!!!") end local position = patrol(patrol_point):point(patrol_point_index) db.actor:actor_look_at_point(position) end По логике ищи ошибку в пути. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Pavel2000 62 Опубликовано 19 января 1 час назад, Skala сказал: on_game_timer = 10 | sr_idle@nil %=play_sound(clown_about_cocksuckers) =set_time(02:00) =run_postprocess(fade_in_out_9_sec)% Почему не работает не знаю, но если начнёт работать то при входе в рестриктор через секунду будет запускаться пост процесс «Если долго мучиться, что-нибудь получится»Охотник за артефактами Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mass 117 Опубликовано 19 января 1 час назад, Skala сказал: когда заходишь в его зону не появляется надпись "Спать" Этот рестриктор нужен для того чтобы гг спал? Или у него другое предназначение? 1 час назад, JimHammond сказал: каким способом можно найти эти секции? Notepad++ как нельзя лучше подойдет для этого. выбирайте во вкладке "найти в файлах" и выбираете путь до папки где искать Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Skala 317 Опубликовано 19 января 14 минут назад, Mass сказал: Этот рестриктор нужен для того чтобы гг спал? Или у него другое предназначение? Да, заходишь, нажимаешь F, экран темнеет и время проматывается + звук проигрывается Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mass 117 Опубликовано 19 января Только что, Skala сказал: Да В функцию sleep в таблицу sleep_zones xr_effects. Тоже добавили? Также рекомендую добавить в pda.script в список sleep_zones_tbl Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Skala 317 Опубликовано 19 января Mass да не, игрок по сути не спит, просто иллюзия создаётся. Просто темнеет экран через fade_in и время через set_time нужное устанавливается Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mass 117 Опубликовано 19 января (изменено) Начнем с того что on_game_timer2 = 90 | sr_idle@nil %=run_postprocess(fade_in_out_9_sec)% Никогда не выполнится Что за функция set_time? Инфо village_sleep_end где выдается? Почему нет stop_postprocess если есть run_postprocess. Нужно подчищать за собой mil_village_sleep_sr Это имя и стори айди рестриктора? Изменено 19 января пользователем Mass Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Pavel2000 62 Опубликовано 19 января смысл разбирать ошибки логики если логика не запускается «Если долго мучиться, что-нибудь получится»Охотник за артефактами Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Skala 317 Опубликовано 19 января Mass помню была функция, с прмощью которой можно нужное время установить, вроде так и называлась. Инфо через функцию в xr_effects выдаётся. Stop_postprocess никогда не прописывал особо, без него и так всё работало. mil_village_sleep_sr - имя и story_id рестриктора Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты