Перейти к содержимому


Фотография

CfgSounds и CfgSoundsEffects


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 9

#1 OFFLINE   Antonio OMCK

Antonio OMCK

    Рядовой

  • Пользователи
  • 9 сообщений

Отправлено 14 April 2016 - 09:17

Доброго времени суток! У меня проблемка похожая, подскажите с реализацией. Есть статичный объект (станционный громкоговоритель), есть звук (разговоры диспетчера по громкой связи). Мне надо сделать так, чтобы у объекта этот звук проигрывался постоянно, т.е. был зациклен. В config я создал класс, все видно, все работает. Проблема в том, что я не могу сообразить, как в классе громкоговорителя прописать так, чтобы он вызывал этот звук. Подумал, что дефолтная церковь мне поможет (там иногда проигрывается звук колоколов). Но нет! Нашел звук колоколов, нашел церковь (и церковную колокольню) в их конфигах связи между собой я не нашел. С триггером все работает, НО! При прописывании в CfgSound в редакторе в эффектах триггера звук есть только в графе "звук" и "голос", а там звук зациклить нельзя + при отдалении от объекта он не утихает, т.е. работает, как окружение. В графе эффекты - звуки можно зациклить, я добавил свой звук в CfgSoundsEffect, в библиотеке конфигов мой звук виден, но вот в редакторе, в триггере, в графе "эффекты" - его нет. Есть ли пути решения? Может можно как-то кнопкой назначить? Просто хочется, чтоб все было одним файлом pbo


  • 0

#2 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 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;
	};
};

Далее, после создания-спавна объекта громкоговоритель, создаёте источник звука командой по ссылке выше, это будет вполне себе объект, который вы можете приатачить к громкоговорителю на нужных вам координатах относительно самого громкоговорителя. Звук будет проигрываться в цикле до тех пор пока вы не удалите объект источник звука.


  • 0

#3 OFFLINE   Antonio OMCK

Antonio OMCK

    Рядовой

  • Пользователи
  • 9 сообщений

Отправлено 25 April 2016 - 15:12

Все сделал. BinPBO не ругается. Ставлю в игре - звука нет. Может я чего не понял? Создал звук. Создал объект. Прописал в объекте "громкоговоритель" :

_soundSource = createSoundSource ["Sound_Alarm", 0,0,0, [], 0];

Типа приатачил его. Но звука - нет. Это точно в конфиге прописывается? Может в каком нибудь дискрипшене? Или, вообще, в триггере?
Я имел в виду, чтобы при добавлении в редакторе на карту объекта громкоговоритель, он сразу добавлялся со звуком. Без дополнительных триггеров, дескрипшенов и т.д. Типа, как у обычных машин проигрывается звук, так и тут. Только тут он играет постоянно, без анимаций, кликов в меню и прочее.


Сообщение отредактировал Antonio OMCK: 25 April 2016 - 16:25

  • 0

#4 OFFLINE   Antonio OMCK

Antonio OMCK

    Рядовой

  • Пользователи
  • 9 сообщений

Отправлено 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 ругается. Я ее добавил в класс объекта "громкоговоритель". Или я не туда добавил?


  • 0

#5 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 сообщений
  • Откуда:Кострома

Отправлено 25 April 2016 - 16:57

Antonio OMCK, а вы как думаете? Конфигурация объекта и скрипт с каких-то пор одно и тоже?
  • 0

#6 OFFLINE   Antonio OMCK

Antonio OMCK

    Рядовой

  • Пользователи
  • 9 сообщений

Отправлено 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

  • 0

#7 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 27 April 2016 - 18:28

 

Мне надо, чтобы все было в конфиге.

 

 

Я хрен его знает. Только начал этим разбираться.

 

И вот так вот сразу прям в конфиг!?

Амбиций вам не занимать! Это не стёб, а комплимент.

 

 

Неужели у бисов весь Алтис заскриптован?

Алтис, это карта, написанная не скриптами, а созданная в террейнбилдере.

И обвешана скриптами в самой мизерной своей части, и то не сама карта, а объекты принадлежащие самой карте.

Конфигурация объектов, ну например ... Дом, имеет в себе очень полезный класс

class EventHandlers {
       init = "(_this select 0) spawn ptm_fnc_houseInit";
};

По гуглите сами, или за ручку в садик отвести?


  • 0

#8 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 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

  • 0

#9 OFFLINE   Antonio OMCK

Antonio OMCK

    Рядовой

  • Пользователи
  • 9 сообщений

Отправлено 05 May 2016 - 16:45

 

 

Мне надо, чтобы все было в конфиге.

 

 

Я хрен его знает. Только начал этим разбираться.

 

И вот так вот сразу прям в конфиг!?

Амбиций вам не занимать! Это не стёб, а комплимент.

 

 

Неужели у бисов весь Алтис заскриптован?

Алтис, это карта, написанная не скриптами, а созданная в террейнбилдере.

И обвешана скриптами в самой мизерной своей части, и то не сама карта, а объекты принадлежащие самой карте.

Конфигурация объектов, ну например ... Дом, имеет в себе очень полезный класс

class EventHandlers {
       init = "(_this select 0) spawn ptm_fnc_houseInit";
};

По гуглите сами, или за ручку в садик отвести?

 

Это не амбиции... Просто игроки, обычно, люди, которые не будут скриптами что-то прикреплять. Им дал pbo и все. Все должно работать. Я именно этого и хочу. Не думал, что обычное прикрепление звука к объекту в арме приравнивается к "созданию ядерного реактора, путем танцев с бубнами"


  • 0

#10 OFFLINE   Antonio OMCK

Antonio OMCK

    Рядовой

  • Пользователи
  • 9 сообщений

Отправлено 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

  • 0




Яндекс.Метрика