Это популярное сообщение. Dennis_Chikin 3 658 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Charsi 440 Опубликовано 23 Марта 2015 Поделиться Опубликовано 23 Марта 2015 ph_button это схема для физ.объекта, а sr_idle для спейсрестриктора. Lua и LuaJIT плагины для Notepad++ SciTE-RU 3.5.5 плагины для MilkShape3D Ссылка на комментарий
Nazgool 250 Опубликовано 23 Марта 2015 Поделиться Опубликовано 23 Марта 2015 (изменено) Давно не занимался логикой. Да и не очень понял что и через сколько должно включаться. Может как-то так ? [ph_button@ventilation_system_on] anim_blend = false anim = button_true ; секунды через 3 запускается двигвтель on_timer = 3000 | %+lab_x7_ventilation_system_turned_on_play_snd% ; через 15 сек. выдыется инфо и секцию оптравить в nil on_timer2 = 15000 | nil %+lab_x7_ventilation_system_worked% А [sr_idle@ventilators_timer] это лишнее Изменено 23 Марта 2015 пользователем Nazgool Ссылка на комментарий
Silver Raven 197 Опубликовано 23 Марта 2015 Поделиться Опубликовано 23 Марта 2015 (изменено) @Charsi, не стал пихать on_timer в схему ph_button т.к. думал, что она ее не поддерживает. @Nazgool, подправил. Без изменений. Похоже инфопоршни вообще не выдаются. А что по поводу это схемы: [logic] active = ph_idle@ventilators_off [ph_idle@ventilators_off] on_info = {+lab_x7_ventilation_system_turned_on} ph_button@ventilators_on_anim [ph_button@ventilators_on_anim] anim = work on_info = {+lab_x7_ventilation_system_turned_on_play_snd} ph_sound@ventilators_on_snd [ph_sound@ventilators_on_snd] snd = lab_x7_ventilations_run looped = true Звук будет проигрываться? Или нужно юзать play_snd_from_obj? Но она вроде как завязана на id-шник объекта. А эта логика используется на многих объектах одновременно. Изменено 23 Марта 2015 пользователем Stalker_AleX333 aka Stalker_AleX333 Мои проекты - ЯндексДиск | Я на Gamer-Mods.ru Ссылка на комментарий
Micha_Pulemiot 142 Опубликовано 23 Марта 2015 Поделиться Опубликовано 23 Марта 2015 (изменено) А без SDK никак нельзя справиться с этой проблемой? Сам спросил, сам отвечаю. Если есть готовые ogg-файлы, то можно заюзать эту http://rusfolder.com/42223746 программу, чтобы подкорректировать ogg-комментарии, как требуется. И не надо качать кучу мегабайтов SDK. За наводку спасибо сталкеру karavan150 Изменено 24 Марта 2015 пользователем Kirgudu Добавлено Kirgudu, 24 Марта 2015 Исправил ссылку Лучше умереть стоя, чем жить на коленях (Эрнесто Че Гевара). Выживаю в NLC-7. Кто не рискует - у того утром не болит голова от шампанского. Ссылка на комментарий
Nazgool 250 Опубликовано 23 Марта 2015 Поделиться Опубликовано 23 Марта 2015 (изменено) @Micha_Pulemiot, Что-то ссылка у меня не дает прогу. Как она хоть называется? , Поставь проверки и найдешь во что оно упирается. ....... @Charsi, Спасибо. Я в принципе таким не занимаюсь, но мало ли ) Изменено 23 Марта 2015 пользователем Nazgool 1 Ссылка на комментарий
Charsi 440 Опубликовано 23 Марта 2015 Поделиться Опубликовано 23 Марта 2015 , да, стоит использовать что-то вроде play_snd_from_obj. @Nazgool, по ссылке SAVandT_1.1. В теме "Инструментарий для мододелов" таких программ уже целая пачка. Я пользуюсь этой. Lua и LuaJIT плагины для Notepad++ SciTE-RU 3.5.5 плагины для MilkShape3D Ссылка на комментарий
Silver Raven 197 Опубликовано 23 Марта 2015 Поделиться Опубликовано 23 Марта 2015 (изменено) @Nazgool, оказывается в данной схеме нельзя использовать числовые приставки после on_timer. Значит придется разбивать на две схемы. @Charsi, а как бы обойтись без указания айдишника? Или их можно перечислить подряд. Изменено 23 Марта 2015 пользователем Stalker_AleX333 aka Stalker_AleX333 Мои проекты - ЯндексДиск | Я на Gamer-Mods.ru Ссылка на комментарий
Nazgool 250 Опубликовано 23 Марта 2015 Поделиться Опубликовано 23 Марта 2015 (изменено) Stalker_AleX333 Может быть. Хотя если верить мануалу Переключение схем выполняется с помощью дополнительных условий схемы logic, которые прописываются в секции текущей активной схемы. Существуют следующие условия переключения: on_actor_dist_le = <number>|<название_схемы> - если дистанция в метрах до игрока меньше либо равно number. on_actor_dist_le_nvis = <number>|<название_схемы> - если дистанция в метрах до игрока меньше либо равно number без проверки на видимость. on_actor_dist_ge = <number>|<название_схемы> - если дистанция в метрах до игрока больше number. on_actor_dist_ge_nvis = <number>|<название_схемы> - если дистанция в метрах до игрока больше number без проверки на видимость. on_signal = <имя_сигнала>|<название_схемы> - срабатывает по приходу сигнала имя_сигнала от текущей активной схемы. on_info = <название_схемы> - срабатывает всегда. on_timer = <number>|<название_схемы> - срабатывает через number миллисекунд после включения схемы. ............. C любыми из вышеперечисленных параметров можно работать следующим образом:on_info = {…} %…%on_info2 = {…} %…%on_info3 = {…} %…% и так далее до посинения Тогда переключайся в ph_idle. Там on_timer должен работать. И on_timer2 и т.д. также. Т.е. не [sr_idle@ventilators_timer] а [ph_idle@ventilators_timer] Изменено 23 Марта 2015 пользователем Nazgool Ссылка на комментарий
UnLoaded 313 Опубликовано 23 Марта 2015 Поделиться Опубликовано 23 Марта 2015 (изменено) Звук будет проигрываться? Будет, только вот от какого объекта ? Если ты вызовешь ph_sound со звуком работы вентиляторов из логики кнопки\переключателя - то и "гудеть" указанным звуком будет эта самая кнопка\переключатель. Раскидай логику по соответствующим объектам, кнопке - кнопковое, а вентиляторам - вентиляторное . Зачем заморачиваться с play_snd_from_obj из логики кнопки ? Насчет всей схемы, которую ты хочешь реализовать: таймер(как я понял - такой-же, как при выбросе на ЧАЭС?) вызывай из спейс_рестриктора, нажал на кнопку - проиграл звук щелчка кнопки(если я правильно понял, что это нужно), по окончанию - выдал и\п, которая переключает логику вентиляторов на секцию с отыгрыванием звука и ею же можно остановить таймер в логике спейс_рестриктора. Как-то так... P.S. и когда выкладываешь какие-то коды логики, неплохо бы указывать к каким объектам ты ее применяешь, а то тяжело понять что откуда... Изменено 23 Марта 2015 пользователем UnLoaded Ссылка на комментарий
Micha_Pulemiot 142 Опубликовано 23 Марта 2015 Поделиться Опубликовано 23 Марта 2015 (изменено) Nazgool http://rusfolder.com/42223746 Прошу исправить сообщение выше. Изменено 23 Марта 2015 пользователем Micha_Pulemiot Лучше умереть стоя, чем жить на коленях (Эрнесто Че Гевара). Выживаю в NLC-7. Кто не рискует - у того утром не болит голова от шампанского. Ссылка на комментарий
Silver Raven 197 Опубликовано 24 Марта 2015 Поделиться Опубликовано 24 Марта 2015 (изменено) @UnLoaded, именно так все и планировалось. И главная проблема даже не в том, как выдать тот или иной инфопоршень, а как зацикленно проигрывать звук на вентиляторах, учитывая то, что их много, а логика на всех одна. И, кстати, кнопка никак не "гудела" бы, у нее один айдишник, а у вентиляторов другие. Короче, попробую-ка я замутить все это дело через рестрикторы "подвешанные" к вентиляторам. Разрабы так вроде делали. upd. C рестрикторами тоже вышел облом. Звук не в какую не хочет проигрываться, хотя схема явно работает. Более того, я спокойно "подвесил" аналогичную на матюгальник - исполняющий роль сирены. В общем, выложу все, что написал. Тут люди куда умнее меня в этих вопросах заглядывают, может увидят то, что я упустил: Схема "биозагрязнения" (рестриктор): [logic] active = sr_idle@biohazard_start_timer ;Делаем небольшую задержку перед запуском всей схемы [sr_idle@biohazard_start_timer] on_timer = 4000 | sr_idle@biohazard_start ;Проверяем включена ли сис. вентиляции, какой на ГГ надет костюм [sr_idle@biohazard_start] on_actor_inside = {+lab_x7_ventilation_system_worked} nil, %=lab_x7_biohazard_check_actor_outfit% {-lab_x7_actor_have_bioprotection_outfit} sr_timer@no_bioprotection_outfit, %=lab_x7_biohazard_check_actor_outfit% {+lab_x7_actor_have_bioprotection_outfit} sr_timer@with_bioprotection_outfit ;Таймер - запускаемый при отключенной сис. вентиляции и отсутствии у ГГ костюма высокой степени биозащиты [sr_timer@no_bioprotection_outfit] type = dec start_value = 120000 on_value = 5 | %=play_snd(heart\2)% | 0 | nil %=aes_kill_actor% on_actor_outside = sr_idle@biohazard_start ;Сис. вентиляции включена - отключаем таймер on_info = {+lab_x7_ventilation_system_worked} nil string = lab_x7_biohazard_attention ;Таймер - запускаемый при отключенной сис. вентиляции и наличии у ГГ костюма высокой степени биозащиты [sr_timer@with_bioprotection_outfit] type = dec start_value = 155000 on_value = 5 | %=play_snd(heart\2)% | 0 | nil %=aes_kill_actor% on_actor_outside = sr_idle@biohazard_start ;Сис. вентиляции включена - отключаем таймер on_info = {+lab_x7_ventilation_system_worked} nil string = lab_x7_biohazard_attention Выключатель (система аварийной продувки): [logic] active = ph_button@ventilation_system_off ;Система вентиляции отключена [ph_button@ventilation_system_off] anim_blend = false anim = button_false tooltip = lab_x7_ventilation_system_switcher ; При юзании, отыгрываем звук кнопки, выдаем инфопоршень о включении системы вентиляции и отыгрывания звука на вентиляторах on_press = ph_button@ventilation_system_on %=play_snd_from_obj(10015:ambient\switch_1) +lab_x7_ventilation_system_turned_on% ;Система вентиляции включена. Кнопка более не юзабельна [ph_button@ventilation_system_on] anim_blend = false anim = button_true ;Запускаем внутренний таймер на 15 сек., (нужна задержка) по окончании выдаем инфопоршень о том, что сис. вентиляции работает on_timer = 15000 | nil %+lab_x7_ventilation_system_worked% Собственно сами проблемные вентиляторы: 1. Схема смены анимации: [logic] active = ph_idle@ventilators_off ;Вентиляторы отключены. Отыгрывается анимация из all.spawnа. Ожидается запускающий инфопоршень [ph_idle@ventilators_off] on_info = {+lab_x7_ventilation_system_turned_on} ph_button@ventilators_on_anim ;Вентиляторы включены. Заменяем анимацию [ph_button@ventilators_on_anim] anim = work 2. Схема для рестрикторов подвешанных к каждому вентилятору (по аналогии используеой разрабами в бункере под Радаром): Спавн секция (образец): [2370] ; cse_abstract properties section_name = space_restrictor name = labx7_ventilators_sound_space_restrictor position = -99.5400009155273, -14.9499998092651, 73.620002746582 direction = 0, 0, 0 id = 65535 version = 118 script_version = 7 spawn_id = 8994 ; cse_alife_object properties game_vertex_id = 2870 level_vertex_id = 987 object_flags = 0xffffff3e custom_data = <<END [logic] cfg = scripts\alex_mod\lab_x7_ventilators_sound.ltx END ; cse_shape properties shapes = 1 shape_0:type = sphere shape_0:offset = 0,0,0 shape_0:radius = 1 ; cse_alife_space_restrictor properties restrictor_type = 3 Логика: [logic] active = sr_idle@ventilators_off ;Вентиляторы отключены. Ожидается запускающий инфопоршень [sr_idle@ventilators_off] on_info = {+lab_x7_ventilation_system_turned_on} ph_sound@ventilators_on ;Устанавливаем зацикленный звук для вентиляторов [ph_sound@ventilators_on] snd = lab_x7_ventilators_run looped = true Матюгальник - сирена: [logic] active = ph_sound@biohazard_alarm_on ;Система вентиляции отключена. Сирена активна [ph_sound@biohazard_alarm_on] snd = lab_x7_biohazard_alarm looped = true on_info = {+lab_x7_ventilation_system_turned_on} ph_sound@biohazard_alarm_off ;Система вентиляции включена. Отключаем сирену [ph_sound@biohazard_alarm_off] snd = lab_x7_biohazard_alarm looped = false on_signal = sound_end| nil Все инфопоршни зареганы, звуки прописаны в sound_sheme.script. Изменено 24 Марта 2015 пользователем Stalker_AleX333 aka Stalker_AleX333 Мои проекты - ЯндексДиск | Я на Gamer-Mods.ru Ссылка на комментарий
Nazgool 250 Опубликовано 24 Марта 2015 Поделиться Опубликовано 24 Марта 2015 , Т.е. в схеме матюгальника звук snd = lab_x7_biohazard_alarm проигрывается, а в схеме вентилятора звук snd = lab_x7_ventilators_run нет? А ты уверен, что со звуком вентиляторов всё нормально? Подставь звук lab_x7_ventilators_run в схему матюгальника и посмотри - если не будет звучать, то звук явно кривой. Ссылка на комментарий
Silver Raven 197 Опубликовано 24 Марта 2015 Поделиться Опубликовано 24 Марта 2015 (изменено) @Nazgool, подсунул заведомо рабочий звук - из пяти рестрикторов с одинаковой логикой и настройками, он проигрывается только на одном. Свой звук, на всякий случай, снова прогнал через СДК - он вообще не работает. Ничего не понимаю. Изменено 24 Марта 2015 пользователем Stalker_AleX333 aka Stalker_AleX333 Мои проекты - ЯндексДиск | Я на Gamer-Mods.ru Ссылка на комментарий
Charsi 440 Опубликовано 24 Марта 2015 Поделиться Опубликовано 24 Марта 2015 , не нужно мешать всё в кучу. Схемы с префиксом ph_ предназначены для физ.объектов, в префиксом sr_ для спейсрестрикторов. Ты же сам написал, что объект под схемой ph_sound, отыгрывающий свою звуковую тему, должен быть уникальным. Тебе при переключении каждого вентилятора на секцию ph_button@ventilators_on_anim нужно скриптом создавать свой звуковой объект и проигрывать его. Lua и LuaJIT плагины для Notepad++ SciTE-RU 3.5.5 плагины для MilkShape3D Ссылка на комментарий
Silver Raven 197 Опубликовано 24 Марта 2015 Поделиться Опубликовано 24 Марта 2015 @Charsi, что-то я не совсем понял, что значит "скриптом создавать свой звуковой объект", это как? aka Stalker_AleX333 Мои проекты - ЯндексДиск | Я на Gamer-Mods.ru Ссылка на комментарий
Charsi 440 Опубликовано 24 Марта 2015 Поделиться Опубликовано 24 Марта 2015 (изменено) function play_snd(actor, obj, p) local snd_obj = xr_sound.get_safe_sound_object("путь к звуку") snd_obj:play_at_pos(obj, obj:position(), sound_object.s3d) end Изменено 24 Марта 2015 пользователем Charsi Lua и LuaJIT плагины для Notepad++ SciTE-RU 3.5.5 плагины для MilkShape3D Ссылка на комментарий
Silver Raven 197 Опубликовано 24 Марта 2015 Поделиться Опубликовано 24 Марта 2015 (изменено) @Charsi, так звук же наверное будет проигрываться единственный раз, а мне нужен бесконечный цикл. К тому же, игра вывалиавется, требуя объяснить ей переменную obj. И касательно этой сроки: snd_obj:play_at_pos(obj, obj:position(), sound_object.s3d) Я так понял она должна заполняться с указанием левел и гейм вертексов или без? Изменено 24 Марта 2015 пользователем Stalker_AleX333 aka Stalker_AleX333 Мои проекты - ЯндексДиск | Я на Gamer-Mods.ru Ссылка на комментарий
UnLoaded 313 Опубликовано 24 Марта 2015 Поделиться Опубликовано 24 Марта 2015 (изменено) В общем, выложу все, что написал .... ;Устанавливаем зацикленный звук для вентиляторов[ph_sound@ventilators_on] измени ph на sr, ведь правильно Charsi подсказывает - схема должна соответствовать типу объекта, для space_restrictor'а - sr. Чтоб не мутить с спейс_рестрикторами можно попробовать так: в логике вентиляторов добавить ;Вентиляторы отключены. Отыгрывается анимация из all.spawnа. Ожидается запускающий инфопоршень [ph_idle@ventilators_off] on_info = {+lab_x7_ventilation_system_turned_on} ph_button@ventilators_on_anim %=play_vent_sound% ;Вентиляторы включены. Заменяем анимацию [ph_button@ventilators_on_anim] anim = work Ф-цию play_vent_sound нужно добавить в gamedata\scripts\xr_effects.script, в ней использовать play_at_pos для озвучки работы вентиляторов. Насчет play_at_pos(obj, obj:position(), sound_object.s3d): obj - это объект, от которого будет звук проигрываться, соответственно вентилятор obj:position() - от объекта получаем его позицию на уровне sound_object.s3d - флаги проигрывания звука. s3d - флаг для проигрывания звука от объекта. Для цикличного проигрывания нужен еще флаг looped(а вот как оба флага указать - спроси, я не в курсе). И вообще - насчет play_at_pos читай в "Справочнике по ф-циям и классам" - тут. Изменено 24 Марта 2015 пользователем UnLoaded Ссылка на комментарий
Silver Raven 197 Опубликовано 24 Марта 2015 Поделиться Опубликовано 24 Марта 2015 (изменено) @UnLoaded, на сколько я знаю, не существует схемы sr_sound. Во всяком случае, в общедоступных источниках и ресурсах самой игры подобного не встречал. А по поводу "звукового скрипта", я уже погуглил, судя по всему, этим способом нельзя воспроизводить звук зациклено. Изменено 24 Марта 2015 пользователем Stalker_AleX333 aka Stalker_AleX333 Мои проекты - ЯндексДиск | Я на Gamer-Mods.ru Ссылка на комментарий
UnLoaded 313 Опубликовано 24 Марта 2015 Поделиться Опубликовано 24 Марта 2015 (изменено) для спейс_рестриктора не существует схемы sr_sound. Этот вариант не работает. А по поводу "звукового скрипта", я уже погуглил, судя по всему, этим способом нельзя воспроизводить звук зациклено. На вскидку: gamedata\config\scripts\agr\agr_factory_assault_trigger.ltx - логика спейс_рестриктора на фабрике Агропрома, где Крота вояки пресуют: [logic] active = {+agr_help_stalkers_start} nil, sr_sound [sr_sound] snd = ambient\gunfire_2 position = agr_factory_gunfire on_actor_inside = %+agr_factory_assault_start% sr_idle@sos ......... Отлично звучит... Насчет play_at_pos с флагом looped - врать не буду, сам не проверял, но верю описанию и изысканиям Shadows... (от себя - что-то мне подсказывает, что всё проигрывание звуков во всяко-разных схемах логики как раз и сделано на этих play_at_pos, где-то там в глубине реализации этих схем. И флаг looped очень даже работает.) Изменено 24 Марта 2015 пользователем UnLoaded Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти