|
|
|
|
Звуковая система
|
|
Smert113 | Дата: Воскресенье, 16 Мая 2010, 14:15:35 | Сообщение # 1 |
9 уровень
Группа: Проверенные
Сообщений: 1068
Награды: 0
Репутация: 161
Блокировки:
| У меня в карте есть несколько типов врагов, неважно какие, их много, так вот: Для каждого этого типа врагов я импортировал в карту по 2 звука атаки: Для собак лай, для людей выкрики и т.д. Задача такая, как сделать систему, которая будет при атаке героя воспроизводить эти звуки с определённой вероятностью? Приведу пример: Сразу скажу, это не мультиплеер, так что работы будет по меньше Вот герой наткнулся на толпу бандитов (это один из типов врагов) И бандиты нападая на него могут выкрикнуть один из допустимых им 2-х звуков (Например: Убью! и Зарэжю!) Надо сделать так чтобы они не кричали всей толпой один и тот же звук, надо чтобы кричали с разной периодичностью и один из звуков наугад и не все сразу. т.е. Сделать вероятность, что кто-то из них что-то крикнет, затем другой и необязательно тоже самое. И вот так для каждого типа врагов.
Вы ничего не хотите делать сами, поэтому вы здесь.
Сообщение отредактировал Smert113 - Воскресенье, 16 Мая 2010, 14:17:38 |
|
|
|
_Shadow | Дата: Воскресенье, 16 Мая 2010, 14:43:27 | Сообщение # 2 |
8 уровень
Группа: Проверенные
Сообщений: 581
Награды: 0
Репутация: 65
Блокировки:
| Это делается так: Событие: Атака юнита Условие: Атакующий юнит - например бандит Действие: Задать переменную - целочисленную, начальное значение 1 Далее Rendom 1-**(например 20), if random = 5 then play (твой звук) else ничего не делатьДобавлено (16-05-2010, 14:40) ---------------------------------------------
Quote (_Shadow) Далее Rendom 1-**(например 20), Имеется ввиду переменная rendom = арифметика - rendom 1-20Добавлено (16-05-2010, 14:43) --------------------------------------------- Что бы пока кричит один не крикнул другой поставь в конце триггер off, а в другом триггере опиши ждать скажем 3 секунды - включить триггер звука.
|
|
|
|
Smert113 | Дата: Воскресенье, 16 Мая 2010, 14:48:05 | Сообщение # 3 |
9 уровень
Группа: Проверенные
Сообщений: 1068
Награды: 0
Репутация: 161
Блокировки:
| Можешь мне пример скинуть?, я слегка путаюсь
Вы ничего не хотите делать сами, поэтому вы здесь.
|
|
|
|
FkoFF | Дата: Воскресенье, 16 Мая 2010, 14:50:09 | Сообщение # 4 |
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
| _Shadow, частично правильно за исключением Quote (_Shadow) триггер off проще сделать рандом на 1-30 и только на 4 и 5 ые числа давать звуки, тогда с вероятностью в 1\15 при атаке они будут что то кричать. Делается это, повторюсь. Generic unit being attacked Unit-type of attacking unit == Bandit set variable VoiceRandom to random integer number between 1 and 30 if then else: VoiceRandom == 3: Play sound xxxx else do nothing if\then\else: voice random == 4 play sound xxxx2 else do nothing
Сообщение отредактировал FkoFF - Воскресенье, 16 Мая 2010, 14:50:25 |
|
|
|
Smert113 | Дата: Воскресенье, 16 Мая 2010, 14:57:07 | Сообщение # 5 |
9 уровень
Группа: Проверенные
Сообщений: 1068
Награды: 0
Репутация: 161
Блокировки:
| FkoFF, необязательно так редко, пусть почаще кричат, и ещё - мне для каждого типа врагов свой тригер надо создавать?
Вы ничего не хотите делать сами, поэтому вы здесь.
Сообщение отредактировал Smert113 - Воскресенье, 16 Мая 2010, 14:57:54 |
|
|
|
_Shadow | Дата: Воскресенье, 16 Мая 2010, 15:00:21 | Сообщение # 6 |
8 уровень
Группа: Проверенные
Сообщений: 581
Награды: 0
Репутация: 65
Блокировки:
| Я напишу весь триггер: Скажем у нас есть бандиты (2) которые атакуют, на надо, что бы при атаке Главного персонажа они кричали свои реплики. Перед работой с триггером необходимо создать переменную, например rendom - она целочисленная. Итак: Название триггера: "Бандиты" Событие: "Главный персонаж атакован" Условие: Ataking(атакующий юнит, не помню как пишется )) юнит = "Бандит" Событие: rendom = rendom(1-20) if rendom = 1 then play saund "твой звук" else нет действий триггер "звук" on триггер "бандиты" off Название триггера: "Звук" Событие: нет Условие: нет Действие: ждать 5 секунд триггер "бандит" on триггер "звук" off FkoFF, единственное, что надо, что бы звук потом не проигрывался больше.Добавлено (16-05-2010, 15:00) ---------------------------------------------
Quote (Smert113) свой тригер надо создавать? Если через несколько переменных, то можно и один, но что бы не заморачиваться лучше для каждого свой, но если звуки совпадают (скажем для собак и волков), то для них надо в условии поставить или, и будет один.
|
|
|
|
Smert113 | Дата: Воскресенье, 16 Мая 2010, 15:02:26 | Сообщение # 7 |
9 уровень
Группа: Проверенные
Сообщений: 1068
Награды: 0
Репутация: 161
Блокировки:
| Quote (_Shadow) FkoFF, единственное, что надо, что бы звук потом не проигрывался больше. Почему? За одну атаку группой бандитов вполне приемлемо что они во время скажем минутной битвы выкрикнут 1-ю реплику раза 3, и вторую раза 3Добавлено (16-05-2010, 15:02) ---------------------------------------------
Quote (_Shadow) Если через несколько переменных, то можно и один, но что бы не заморачиваться лучше для каждого свой, но если звуки совпадают (скажем для собак и волков), то для них надо в условии поставить или, и будет один. Ну это понятно, совпадений там небудет.
Вы ничего не хотите делать сами, поэтому вы здесь.
|
|
|
|
_Shadow | Дата: Воскресенье, 16 Мая 2010, 15:02:47 | Сообщение # 8 |
8 уровень
Группа: Проверенные
Сообщений: 581
Награды: 0
Репутация: 65
Блокировки:
| Так так оно и будет если триггер отключить над длительность звука.
|
|
|
|
Smert113 | Дата: Воскресенье, 16 Мая 2010, 15:03:50 | Сообщение # 9 |
9 уровень
Группа: Проверенные
Сообщений: 1068
Награды: 0
Репутация: 161
Блокировки:
| И всё же мне пока неясно чей пример юзать, у тебя _Shadow, в тригере только один звук вроде прописывается? а должен то быть один из двух
Вы ничего не хотите делать сами, поэтому вы здесь.
|
|
|
|
_Shadow | Дата: Воскресенье, 16 Мая 2010, 15:05:54 | Сообщение # 10 |
8 уровень
Группа: Проверенные
Сообщений: 581
Награды: 0
Репутация: 65
Блокировки:
| Quote (Smert113) надо, что бы звук потом не проигрывался больше. Я имел ввиду на то время пока проигрывался первый звук, не начинал проигрываться второй.Добавлено (16-05-2010, 15:04) --------------------------------------------- Можно добавить и другие звуки. Скажем на цифры 2 и 3, по аналогии. Добавлено (16-05-2010, 15:05) --------------------------------------------- Я написал про одни звук, если их два, то if будет не один, скажем к if rendom = 1, добавляется if rendom = 2, и тогда будет уже для двух звуков.
|
|
|
|
Smert113 | Дата: Воскресенье, 16 Мая 2010, 15:07:51 | Сообщение # 11 |
9 уровень
Группа: Проверенные
Сообщений: 1068
Награды: 0
Репутация: 161
Блокировки:
| Вы меня запутали господа, так сразу и не понять Можно всё таки пример?
Вы ничего не хотите делать сами, поэтому вы здесь.
|
|
|
|
_Shadow | Дата: Воскресенье, 16 Мая 2010, 15:08:45 | Сообщение # 12 |
8 уровень
Группа: Проверенные
Сообщений: 581
Награды: 0
Репутация: 65
Блокировки:
| Можно. Тебе скинуть или скрин?
|
|
|
|
Smert113 | Дата: Воскресенье, 16 Мая 2010, 15:11:39 | Сообщение # 13 |
9 уровень
Группа: Проверенные
Сообщений: 1068
Награды: 0
Репутация: 161
Блокировки:
| Скинь куданибудь, только делай обязательно для одного врага два звука а не один, у меня их 2, чтобы сразу всё понятно было
Вы ничего не хотите делать сами, поэтому вы здесь.
|
|
|
|
_Shadow | Дата: Воскресенье, 16 Мая 2010, 15:12:42 | Сообщение # 14 |
8 уровень
Группа: Проверенные
Сообщений: 581
Награды: 0
Репутация: 65
Блокировки:
| Кстати хотелось бы заметить, что я и FkoFF, говорим об одном и том же а получается по разному , наши варианты практически идентичны. Quote (Smert113) у меня их 2 Давай я на 10 сделаю Шучу...
|
|
|
|
FkoFF | Дата: Воскресенье, 16 Мая 2010, 15:48:30 | Сообщение # 15 |
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
| в принципе можно конечно через ифзен сделать в одном огромном триггере, а с другой стороны это ущербно
|
|
|
|
Smert113 | Дата: Воскресенье, 16 Мая 2010, 16:43:27 | Сообщение # 16 |
9 уровень
Группа: Проверенные
Сообщений: 1068
Награды: 0
Репутация: 161
Блокировки:
| Сейчас посмотрю пример, и скажу понятно или нет и закроем тему Добавлено (16-05-2010, 16:43) --------------------------------------------- Такс, _Shadow, я посмотрел пример, поясни пожалуйста следующие ньюансы 1) Для чего ты поставил "Установить громкость музыки 0% 2) Что будет если тригер "Задержка" убрать?
Вы ничего не хотите делать сами, поэтому вы здесь.
|
|
|
|
_Shadow | Дата: Воскресенье, 16 Мая 2010, 16:50:57 | Сообщение # 17 |
8 уровень
Группа: Проверенные
Сообщений: 581
Награды: 0
Репутация: 65
Блокировки:
| Quote (Smert113) 2) Что будет если тригер "Задержка" убрать? Начнём с этого... Если его убрать, то каждая атака, будет рендомна воспроизводить/не воспроизводить звук, т.к. есть шанс что один звук начнёт воспроизводится синхронно с другим, или с небольшим опоздание. Задержка скажем в 2 секунды, даёт возможность на время воспроизводства звука перекрыть случай его воспроизведения.Добавлено (16-05-2010, 16:50) ---------------------------------------------
Quote (Smert113) 1) Для чего ты поставил "Установить громкость музыки 0% А ты пробовал когда нибудь без этого??
|
|
|
|
Smert113 | Дата: Воскресенье, 16 Мая 2010, 16:52:38 | Сообщение # 18 |
9 уровень
Группа: Проверенные
Сообщений: 1068
Награды: 0
Репутация: 161
Блокировки:
| Quote (_Shadow) А ты пробовал когда нибудь без этого?? ээ, я этим действием никогда не пользовался, хотя я знаю обо всё что касается звука в варике
Вы ничего не хотите делать сами, поэтому вы здесь.
|
|
|
|
_Shadow | Дата: Воскресенье, 16 Мая 2010, 16:56:07 | Сообщение # 19 |
8 уровень
Группа: Проверенные
Сообщений: 581
Награды: 0
Репутация: 65
Блокировки:
| Ну а теперь о сути. Получилось?
|
|
|
|
Smert113 | Дата: Воскресенье, 16 Мая 2010, 16:58:34 | Сообщение # 20 |
9 уровень
Группа: Проверенные
Сообщений: 1068
Награды: 0
Репутация: 161
Блокировки:
| _Shadow, сейчас тестирую твою мапу, внёс ряды изменений, для быстроты теста, ты знаешь, не работает ничего сделал ещё изменения: не 1 и 5 а 1 и 2 соответственно он должен постоянно воспроизводить либо один либо другой звук, для уверенности добавил вывод текста "1" к первому звуку и "2" ко второму они сработали, сперва первый затем второй, патом будучи в толпе, колошмативших меня врагов они более не срабатывали вообще, как будто тригер одноразовый.
Вы ничего не хотите делать сами, поэтому вы здесь.
Сообщение отредактировал Smert113 - Воскресенье, 16 Мая 2010, 16:59:03 |
|
|
|
_Shadow | Дата: Воскресенье, 16 Мая 2010, 17:03:32 | Сообщение # 21 |
8 уровень
Группа: Проверенные
Сообщений: 581
Награды: 0
Репутация: 65
Блокировки:
| Quote (Smert113) они сработали, сперва первый затем второй, патом будучи в толпе, колошмативших меня врагов они более не срабатывали вообще, как будто тригер одноразовый. По порядку 1) во время теста кое что не запускается, надо открывать через вар 2) Насчёт толпы это я не расчитал. Тут вот в чём проблема. Если бы они перестали атаковать, и ты бы убежал, а затем пришёл снова, то сработа ло бы и снова один раз. Для результата поставь шанс звука, т.е. rendom = rendom 1-30 и убеи задержку.
|
|
|
|
Smert113 | Дата: Воскресенье, 16 Мая 2010, 17:07:44 | Сообщение # 22 |
9 уровень
Группа: Проверенные
Сообщений: 1068
Награды: 0
Репутация: 161
Блокировки:
| Quote (_Shadow) Тут вот в чём проблема. Если бы они перестали атаковать, и ты бы убежал, а затем пришёл снова, то сработа ло бы и снова один раз Нет, я пробовал не возобновился тригерДобавлено (16-05-2010, 17:07) ---------------------------------------------
Quote (_Shadow) т.е. rendom = rendom 1-30 и убеи задержку. не не, трабла даже не в этом, пусть кричат много раз и пусть даже почти одновременно одно и тоже это неважно, а такой рандом огромный он просто вырубит начисто всякую вероятность
Вы ничего не хотите делать сами, поэтому вы здесь.
|
|
|
|
_Shadow | Дата: Воскресенье, 16 Мая 2010, 17:12:14 | Сообщение # 23 |
8 уровень
Группа: Проверенные
Сообщений: 581
Награды: 0
Репутация: 65
Блокировки:
| Так надо поставить например но 1 и 3 и 5 звук "1", а на 2 и3 и4 звук "2" Добавлено (16-05-2010, 17:12) ---------------------------------------------
Quote (Smert113) я пробовал не возобновился тригер Кстати ждать надо суммарное время, при моём триггере задержке, т.е. если два бандита били по 2 раза и задежка 4 секунды, то 2*2*4=16 секунд надо ждать. Тут я ошибся , думая что атаовать будет только один воин.
|
|
|
|
Smert113 | Дата: Воскресенье, 16 Мая 2010, 17:14:45 | Сообщение # 24 |
9 уровень
Группа: Проверенные
Сообщений: 1068
Награды: 0
Репутация: 161
Блокировки:
| Я поставил короткие звуки, что ты видимо не смог приобщить)) У этих звуков, возьми на заметку, должно быть - по умолчанию, общий, и сняты галочки, вот тогда они работают. Смотри скрин, я убрал всё ненужное, вот при каком раскладе должен был быть нужный результат. *всё после задержки там внизу можно убрать, это не нужно, они ведь каждый сам за себя говорит
Вы ничего не хотите делать сами, поэтому вы здесь.
Сообщение отредактировал Smert113 - Воскресенье, 16 Мая 2010, 17:17:31 |
|
|
|
_Shadow | Дата: Воскресенье, 16 Мая 2010, 17:26:37 | Сообщение # 25 |
8 уровень
Группа: Проверенные
Сообщений: 581
Награды: 0
Репутация: 65
Блокировки:
| Т.е. всё получилось?
|
|
|
|
|
|
|
|
|
|
|