Сейчас 12:14:00 Вторник, 26 ноября, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: PUVer, SirNikolas, Ty3uK  
Звуковая система
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
Блокировки:
:D Можно. Тебе скинуть или скрин?
 

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 сделаю :D :D :D :D :D :D :D Шучу...
 

FkoFFДата: Воскресенье, 16 Мая 2010, 15:48:30 | Сообщение # 15
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
в принципе можно конечно через ифзен сделать в одном огромном триггере, а с другой стороны это ущербно :D

 

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%

:D А ты пробовал когда нибудь без этого??
 

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
Блокировки:
Я поставил короткие звуки, что ты видимо не смог приобщить))
У этих звуков, возьми на заметку, должно быть - по умолчанию, общий, и сняты галочки, вот тогда они работают.
Смотри скрин, я убрал всё ненужное, вот при каком раскладе должен был быть нужный результат.

*всё после задержки там внизу можно убрать, это не нужно, они ведь каждый сам за себя говорит :)

Прикрепления: 2299416.jpg (49.0 Kb)


Вы ничего не хотите делать сами, поэтому вы здесь.


Сообщение отредактировал Smert113 - Воскресенье, 16 Мая 2010, 17:17:31
 

_ShadowДата: Воскресенье, 16 Мая 2010, 17:26:37 | Сообщение # 25
8 уровень
Группа: Проверенные
Сообщений: 581
Награды: 0
Репутация: 65
Блокировки:
Т.е. всё получилось?
 

  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz