Overf1rst 1 507 Опубликовано 1 июля, 2020 Тема посвящена моддингу на платформе Зов Припяти. Правила темы: Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть. Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода. Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа). Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться. 19 10 1 1 2 6 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mass 97 Опубликовано 6 часов назад 8 минут назад, Вереск сказал: Но у некоторых мутантов это не работает, как и у аномалий Не сталкивался с таким! У кого конкретно не работает? Может звук отсутствует? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Вереск 34 Опубликовано 6 часов назад 1 минуту назад, Mass сказал: Не сталкивался с таким! У кого конкретно не работает? Может звук отсутствует? Сейчас точно не скажу (ковырял это в 2021-2022 где-то). Да и вопрос не в этом, а в том, как сделать так, чтобы аномалии тоже, как в конфигах мутантов читали звуки с окончанием на "_". Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mass 97 Опубликовано 6 часов назад 10 минут назад, Вереск сказал: непонятно когда она работает, а когда нет Напрашивается вопрос. А зачем несколько звуков для цикличных звуков? Дополнено 6 минуты спустя 3 минуты назад, Вереск сказал: как сделать так, чтобы аномалии тоже, как в конфигах мутантов читали звуки с окончанием на "_ Править движок файл CustomZone.cpp , либо проверять на апдейте аномалии и подменять звук в зависимости от расстоянии Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Вереск 34 Опубликовано 6 часов назад 8 минут назад, Mass сказал: Напрашивается вопрос. А зачем несколько звуков для цикличных звуков? Дополнено 6 минуты спустя Править движок файл CustomZone.cpp , либо проверять на апдейте аномалии и подменять звук в зависимости от расстоянии Потому что с точки зрения саунд-дизайна, это слышится плохо, когда играется один и тот же звук. К примеру заходя в здания и слыша разные скрипы это больше даёт погружения и атмосферы, чем просто зацикленный один и тот же вариант. Видимо придётся ковыряться в движке, в общем спасибо за информацию. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ian98 313 Опубликовано 6 часов назад Вереск аномалиям можно прописать отдельный биндер, как у сталкеров или монстров, а там уже делать практически любой маневр. Созданшь копию скрипта xr_motivator. В конфиге аномалий, в секции anomaly_base, подвязываешь свой скрипт строчкой script_binding(я уж точно не помню как там писать). В общем, можем подумать над этим вариантом позже. Почти уверен, что так можно звуки подвязать, как уже писали, через апдейт Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Вереск 34 Опубликовано 6 часов назад 1 минуту назад, ian98 сказал: Вереск аномалиям можно прописать отдельный биндер, как у сталкеров или монстров, а там уже делать практически любой маневр. Созданшь копию скрипта xr_motivator. В конфиге аномалий, в секции anomaly_base, подвязываешь свой скрипт строчкой script_binding(я уж точно не помню как там писать). В общем, можем подумать над этим вариантом позже. Почти уверен, что так можно звуки подвязать, как уже писали, через апдейт Если есть статья на эту тему, закинь, прочту. Просто в скриптах и прочем я не копался сильно (чисто по звуку работаю, да материалам). Сейчас попробую пока так, как ты выше описал Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ian98 313 Опубликовано 6 часов назад Вереск Вереск можно по примеру биндера вертолетов сделать, потому что там как раз через биндер звуки тоже прописывали сами же разрабы(bind_heli). Интуитивно чисто. А так, за комп сяду, покрвыряюсь. Мне кажется можно сделать 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Вереск 34 Опубликовано 6 часов назад 1 минуту назад, ian98 сказал: Вереск Вереск можно по примеру биндера вертолетов сделать, потому что там как раз через биндер звуки тоже прописывали сами же разрабы(bind_heli). Интуитивно чисто. А так, за комп сяду, покрвыряюсь. Мне кажется можно сделать Окей. Я пока что прибиндил к zone_base новый скрипт, но честно внутри самого скрипта я ничего не понимаю, пока это для меня выглядит чисто, как набор символов страшный) Дополнено 2 минуты спустя 23 минуты назад, Mass сказал: Напрашивается вопрос. А зачем несколько звуков для цикличных звуков? Дополнено 6 минуты спустя Править движок файл CustomZone.cpp , либо проверять на апдейте аномалии и подменять звук в зависимости от расстоянии Проверил работает ли логика в рестрикторе, выдало вот это Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mass 97 Опубликовано 6 часов назад 6 минут назад, Вереск сказал: Проверил работает ли логика в рестрикторе, выдало вот это В bind_anomaly_zone и в bind_anomaly_field в апдейте нужно делать 11 минут назад, Вереск сказал: Я пока что прибиндил к zone_base новый скрипт Разумеется так это не будет работать! Нужно понимать структуру класса, какие методы они используют и прочие вещи Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Вереск 34 Опубликовано 5 часов назад 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 97 Опубликовано 5 часов назад (изменено) 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% Изменено 5 часов назад пользователем Mass Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Вереск 34 Опубликовано 5 часов назад 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 97 Опубликовано 5 часов назад 2 минуты назад, Вереск сказал: будет играться звук Пока игрок не уйдет в оффлайн (слишком далеко от рестриктора) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Вереск 34 Опубликовано 5 часов назад 1 минуту назад, Mass сказал: Пока игрок не уйдет в оффлайн (слишком далеко от рестриктора) Ну в принципе так и надо. Попробую сейчас сделать. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Skala 317 Опубликовано 4 часа назад Здравствуйте, не работает логика рестриктора. При получении задания на енго не падает метка, и когда заходишь в его зону не появляется надпись "Спать", при нажатии 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 0 Опубликовано 3 часа назад Mawrak каким способом можно найти эти секции? Ручками, открывать каждый файл? Или проггой по типу Winmerge? Или для сталкера есть уже написанная кем-то прогга? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Neptun 886 Опубликовано 2 часа назад 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 51 Опубликовано 2 часа назад 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 97 Опубликовано 2 часа назад 1 час назад, Skala сказал: когда заходишь в его зону не появляется надпись "Спать" Этот рестриктор нужен для того чтобы гг спал? Или у него другое предназначение? 1 час назад, JimHammond сказал: каким способом можно найти эти секции? Notepad++ как нельзя лучше подойдет для этого. выбирайте во вкладке "найти в файлах" и выбираете путь до папки где искать Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Skala 317 Опубликовано 2 часа назад 14 минут назад, Mass сказал: Этот рестриктор нужен для того чтобы гг спал? Или у него другое предназначение? Да, заходишь, нажимаешь F, экран темнеет и время проматывается + звук проигрывается Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mass 97 Опубликовано 2 часа назад Только что, Skala сказал: Да В функцию sleep в таблицу sleep_zones xr_effects. Тоже добавили? Также рекомендую добавить в pda.script в список sleep_zones_tbl Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Skala 317 Опубликовано 1 час назад Mass да не, игрок по сути не спит, просто иллюзия создаётся. Просто темнеет экран через fade_in и время через set_time нужное устанавливается Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mass 97 Опубликовано 1 час назад (изменено) Начнем с того что 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 Это имя и стори айди рестриктора? Изменено 1 час назад пользователем Mass Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Pavel2000 51 Опубликовано 1 час назад смысл разбирать ошибки логики если логика не запускается «Если долго мучиться, что-нибудь получится» Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Skala 317 Опубликовано 1 час назад Mass помню была функция, с прмощью которой можно нужное время установить, вроде так и называлась. Инфо через функцию в xr_effects выдаётся. Stop_postprocess никогда не прописывал особо, без него и так всё работало. mil_village_sleep_sr - имя и story_id рестриктора Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты