Доброго времени суток! У меня проблемка похожая, подскажите с реализацией. Есть статичный объект (станционный громкоговоритель), есть звук (разговоры диспетчера по громкой связи). Мне надо сделать так, чтобы у объекта этот звук проигрывался постоянно, т.е. был зациклен. В config я создал класс, все видно, все работает. Проблема в том, что я не могу сообразить, как в классе громкоговорителя прописать так, чтобы он вызывал этот звук. Подумал, что дефолтная церковь мне поможет (там иногда проигрывается звук колоколов). Но нет! Нашел звук колоколов, нашел церковь (и церковную колокольню) в их конфигах связи между собой я не нашел. С триггером все работает, НО! При прописывании в CfgSound в редакторе в эффектах триггера звук есть только в графе "звук" и "голос", а там звук зациклить нельзя + при отдалении от объекта он не утихает, т.е. работает, как окружение. В графе эффекты - звуки можно зациклить, я добавил свой звук в CfgSoundsEffect, в библиотеке конфигов мой звук виден, но вот в редакторе, в триггере, в графе "эффекты" - его нет. Есть ли пути решения? Может можно как-то кнопкой назначить? Просто хочется, чтоб все было одним файлом pbo
CfgSounds и CfgSoundsEffects
#1 OFFLINE
Отправлено 14 April 2016 - 09:17
#2 OFFLINE
Отправлено 17 April 2016 - 22:26
Суть затеи такова, в конфигурации создаёте объект источник звука
пример из армовского конфига config.cpp, аддон sounds_f.pbo
// создаётся звук class CfgSFX { class AlarmSfx { sounds[] = {"Alarm"}; name = $STR_DN_ALARM; Alarm[] = {"A3\Sounds_F\sfx\alarm", 1.0, 1, 400, 1, 0.0, 0.0, 0.0}; empty[] = {"", 0, 0, 0, 0, 0, 0, 0}; }; }; // создаётся объект, источник звука class cfgVehicles { class All; class Sound : All {}; class Sound_Alarm : Sound { author = "$STR_A3_Bohemia_Interactive"; _generalMacro = "Sound_Alarm"; scope = 2; sound = "AlarmSfx"; displayName = $STR_DN_ALARM; }; };
Далее, после создания-спавна объекта громкоговоритель, создаёте источник звука командой по ссылке выше, это будет вполне себе объект, который вы можете приатачить к громкоговорителю на нужных вам координатах относительно самого громкоговорителя. Звук будет проигрываться в цикле до тех пор пока вы не удалите объект источник звука.
#3 OFFLINE
Отправлено 25 April 2016 - 15:12
Все сделал. BinPBO не ругается. Ставлю в игре - звука нет. Может я чего не понял? Создал звук. Создал объект. Прописал в объекте "громкоговоритель" :
_soundSource = createSoundSource ["Sound_Alarm", 0,0,0, [], 0];
Типа приатачил его. Но звука - нет. Это точно в конфиге прописывается? Может в каком нибудь дискрипшене? Или, вообще, в триггере?
Я имел в виду, чтобы при добавлении в редакторе на карту объекта громкоговоритель, он сразу добавлялся со звуком. Без дополнительных триггеров, дескрипшенов и т.д. Типа, как у обычных машин проигрывается звук, так и тут. Только тут он играет постоянно, без анимаций, кликов в меню и прочее.
Сообщение отредактировал Antonio OMCK: 25 April 2016 - 16:25
#4 OFFLINE
Отправлено 25 April 2016 - 16:27
Суть затеи такова, в конфигурации создаёте объект источник звука
пример из армовского конфига config.cpp, аддон sounds_f.pbo
// создаётся звук class CfgSFX { class AlarmSfx { sounds[] = {"Alarm"}; name = $STR_DN_ALARM; Alarm[] = {"A3\Sounds_F\sfx\alarm", 1.0, 1, 400, 1, 0.0, 0.0, 0.0}; empty[] = {"", 0, 0, 0, 0, 0, 0, 0}; }; }; // создаётся объект, источник звука class cfgVehicles { class All; class Sound : All {}; class Sound_Alarm : Sound { author = "$STR_A3_Bohemia_Interactive"; _generalMacro = "Sound_Alarm"; scope = 2; sound = "AlarmSfx"; displayName = $STR_DN_ALARM; }; };Далее, после создания-спавна объекта громкоговоритель, создаёте источник звука командой по ссылке выше, это будет вполне себе объект, который вы можете приатачить к громкоговорителю на нужных вам координатах относительно самого громкоговорителя. Звук будет проигрываться в цикле до тех пор пока вы не удалите объект источник звука.
Кстати, на команду:
[] spawn { _alarm = createSoundSource ["Sound_Alarm", 0,0,0, [], 0]; //starts alarm sleep 10; deleteVehicle _alarm; //stops alarm };
BinPBO ругается. Я ее добавил в класс объекта "громкоговоритель". Или я не туда добавил?
#5 OFFLINE
Отправлено 25 April 2016 - 16:57
#6 OFFLINE
Отправлено 25 April 2016 - 19:18
Antonio OMCK, а вы как думаете? Конфигурация объекта и скрипт с каких-то пор одно и тоже?
Я хрен его знает. Только начал этим разбираться. В том то и дело, что мне не нужен скрипт. Мне надо, чтобы все было в конфиге. Неужели у бисов весь Алтис заскриптован? Я так не думаю. Мне кажется, что там все таки сразу были объекты с приатачеными звуками.
Я кстати, посмотрел и sounds_f.pbo и sounds_f_sfx.pbo разобрался. Все пошло! НО! Звука не слышно. Где то читал, что надо в строке:
Alarm[] = {"A3\Sounds_F\sfx\alarm", 1.0, 1, 400, 1, 0.0, 0.0, 0.0};
вместо 1.0 поставить db-15, но тут так не сработало.
Я начал с этой темой разбираться лишь для того, чтобы помочь парням с РЖД модом. Круто будет, если в Алтисе РЖД появится. Сейчас пробую разобраться на простых моделях, потом перейду на сложные.
Сообщение отредактировал Antonio OMCK: 25 April 2016 - 19:20
#7 OFFLINE
Отправлено 27 April 2016 - 18:28
Мне надо, чтобы все было в конфиге.
Я хрен его знает. Только начал этим разбираться.
И вот так вот сразу прям в конфиг!?
Амбиций вам не занимать! Это не стёб, а комплимент.
Неужели у бисов весь Алтис заскриптован?
Алтис, это карта, написанная не скриптами, а созданная в террейнбилдере.
И обвешана скриптами в самой мизерной своей части, и то не сама карта, а объекты принадлежащие самой карте.
Конфигурация объектов, ну например ... Дом, имеет в себе очень полезный класс
class EventHandlers { init = "(_this select 0) spawn ptm_fnc_houseInit"; };
По гуглите сами, или за ручку в садик отвести?
#8 OFFLINE
Отправлено 27 April 2016 - 18:49
Суть затеи такова, в конфигурации создаёте объект источник звука
пример из армовского конфига config.cpp, аддон sounds_f.pbo
// создаётся звук class CfgSFX { class AlarmSfx { sounds[] = {"Alarm"}; name = $STR_DN_ALARM; Alarm[] = {"A3\Sounds_F\sfx\alarm", 1.0, 1, 400, 1, 0.0, 0.0, 0.0}; empty[] = {"", 0, 0, 0, 0, 0, 0, 0}; }; }; // создаётся объект, источник звука class cfgVehicles { class All; class Sound : All {}; class Sound_Alarm : Sound { author = "$STR_A3_Bohemia_Interactive"; _generalMacro = "Sound_Alarm"; scope = 2; sound = "AlarmSfx"; displayName = $STR_DN_ALARM; }; };Далее, после создания-спавна объекта громкоговоритель, создаёте источник звука командой по ссылке выше, это будет вполне себе объект, который вы можете приатачить к громкоговорителю на нужных вам координатах относительно самого громкоговорителя. Звук будет проигрываться в цикле до тех пор пока вы не удалите объект источник звука.
Кстати, на команду:
[] spawn { _alarm = createSoundSource ["Sound_Alarm", 0,0,0, [], 0]; //starts alarm sleep 10; deleteVehicle _alarm; //stops alarm };BinPBO ругается. Я ее добавил в класс объекта "громкоговоритель". Или я не туда добавил?
Land_Loudspeakers_F.VR.7z 1.07К 16 Количество загрузок:
Сообщение отредактировал SteelRat: 27 April 2016 - 18:50
#9 OFFLINE
Отправлено 05 May 2016 - 16:45
Мне надо, чтобы все было в конфиге.
Я хрен его знает. Только начал этим разбираться.
И вот так вот сразу прям в конфиг!?
Амбиций вам не занимать! Это не стёб, а комплимент.
Неужели у бисов весь Алтис заскриптован?
Алтис, это карта, написанная не скриптами, а созданная в террейнбилдере.
И обвешана скриптами в самой мизерной своей части, и то не сама карта, а объекты принадлежащие самой карте.
Конфигурация объектов, ну например ... Дом, имеет в себе очень полезный класс
class EventHandlers { init = "(_this select 0) spawn ptm_fnc_houseInit"; };По гуглите сами, или за ручку в садик отвести?
Это не амбиции... Просто игроки, обычно, люди, которые не будут скриптами что-то прикреплять. Им дал pbo и все. Все должно работать. Я именно этого и хочу. Не думал, что обычное прикрепление звука к объекту в арме приравнивается к "созданию ядерного реактора, путем танцев с бубнами"
#10 OFFLINE
Отправлено 05 May 2016 - 17:13
Алтис, это карта, написанная не скриптами, а созданная в террейнбилдере.
И обвешана скриптами в самой мизерной своей части, и то не сама карта, а объекты принадлежащие самой карте.
Конфигурация объектов, ну например ... Дом, имеет в себе очень полезный класс
class EventHandlers { init = "(_this select 0) spawn ptm_fnc_houseInit"; };По гуглите сами, или за ручку в садик отвести?
Че-то в wiki Arma 3: Event Handlers, тупо написано, что init используется только в конфиге в классе EventHandlers, примера кода нет. Мне просто надо разобраться. Судя по строчке init = "(_this select 0) spawn ptm_fnc_houseInit" я так понял, что при спавне моего объекта ему даются свойства дома? Или как?
Я просто хочу разобраться в алгоритме армовского конфига. Сейчас я понял только то, что в начале конфига описываются классы, потом они вызываются. Их можно наследовать и давать им различные свойства. Я создал класс с зацикленным звуком, создал класс объекта. По сути, следующим шагом надо дать объекту свойство, чтоб он этот звук проигрывал? Я пробовал добавлять просто как свойство, типа: "sound[] =". Или надо создать еще один класс Event Handlers и в нем написать, что мой объект должен иметь доп. свойство проигрывать трек?
Сообщение отредактировал Antonio OMCK: 05 May 2016 - 17:21