Страница 3 из 3«123
Форум - Russian Tournament » Игры » UnrealED » Как на UseTrigger поставить звук (sml[thread])
Как на UseTrigger поставить звук
EVA
народ помогите, кто чем может)))
желательно, чтобы при нажатии игроком на [use]играл саунд, по кругу без остановки, но если нажать опять на [use]саунд бы остановился моментально, если опять нажать опять играл... ну и т.д.

пробовала так
вот такой тригер:

Begin Map
Begin Actor Class=UseTrigger Name=UseTrigger22
Level=***
Region=***
Tag="UseTrigger"
Event="lol"
PhysicsVolume=***
Location=***
ColLocation=***
bSelected=True
End Actor
Begin Surface
End Surface
End Map

----------------------------------------------------------------------

и к нему костыль:

Begin Map
Begin Actor Class=ScriptedTrigger Name=ScriptedTrigger18
Begin Object Class=Action_WAITFOREVENT Name=Action_WAITFOREVENT29
ExternalEvent="lol"
End Object
Actions(0)=Action_WAITFOREVENT'myLevel.Action_WAITFOREVENT29'

Begin Object Class=Action_PLAYSOUND Name=Action_PLAYSOUND7
Sound=бла`бла.бла
Volume=255.000000
End Object
Actions(1)=Action_PLAYSOUND'myLevel.Action_PLAYSOUND7'

Begin Object Class=Action_GOTOACTION Name=Action_GOTOACTION0
End Object
Actions(2)=Action_GOTOACTION'myLevel.Action_GOTOACTION0'

Level=***
Region=***
Tag="ScriptedTrigger"
PhysicsVolume=***
Location=***
bSelected=True
End Actor
Begin Surface
End Surface
End Map

---------------------------------------------------------------------------

но результат был редкостное дерьмо okay

помогите плиз bye
XCanG
В общем принцип такой, у тебя UseTrigger переключает TriggeredCondition (актор находится в триггерах, у него надо поставить вроде bTriggerControlled=True), собственно он и будет хранить информацию о том включено ли проигрывание звука или нет.
В скрипте нужно задать цикл такого плана: если TriggeredCondition Triggered, тогда проигрываем звук, ждём время исполнения звука и возвращаемся к началу, проверяя TriggeredCondition, а если нет, тогда пропускаем цикл и ждём какое-то время, затем возвращаемся в начало.
Надеюсь понятно. Ивенты такие: Action_IFCONDITION – там спрашиваем включен ли триггер или нет, Action_PLAYSOUND – тут запускаем звук, Action_WAITFORTIMER – ждём его исполнения, Action_GOTOACTION – ставим в конец цикла, чтобы вернуться в начало, Action_ENDSECTION – это конец IFCONDITION, то есть та ветка команд, когда звук не должен проигрываться.

Ну и всё.

Мой IP сменился с 89.113.234.78/185.42.146.32 на 83.167.1.167. Теперь будет этот. Надолго. Порты те же.
http-сервер
.do impossible   beat unbeatable
GP
да тут расписано больше чем сам код занимает yaoming
так уж быть, вот обычный Switch в формате ut2. Position это положение со старта. Есть отдельные ивенты и звуки по включению и выключению. Звук который надо воспроизводить цыклически ставитса в AmbientSound (громкость будет как OnVolume), ну и если со старта выключено, то надо не забыть SoundVolume = OffVolume (тоесть 0). Если надо чтоб звук шел не из триггера а с другого места, то надо в Speaker указать актор который будет выдавать звук, у того актора должен быть указан AmbientSound.

Добавлено (09 Января 15, 00:22)
---------------------------------------------
И у меня там стоит bHidden=false, чтоб в игре не было видно надо поставить bHidden=true, если вдруг кто не знает))).

EVA
Цитата GP ()
скажы еще что это тоже редкосное)
 
то что ты мне дал, это даже не 10 из 10, а 100 из 100!
GP
awesome
EVA
а по этому свитчу вопросик: а он сам дистанционно какой-нибудь тригер "слушает"? или он только "ручной переключатель"?

-----------------------------------------------------------------------------------------------
офтоп:

мне вот ещё интересно: допустим у меня три триггера с ивентами 111, 222, 333.

первый триггер с ивентрм 111, -врубает лампочку с тегом 1,
второй триггер с ивентом 222 врубает лампочку с  тегом 2,
третий триггер с ивентом 333 врубает лампочку с  тегом 3,

как все эти лампочки включить разом?(при условии что тег одинаковый им ставить нельзя!)
...да, можно конечно поставить все три треггера в кучу и когда игрок подойдёт он при нажатии юзе включит их все три сразу(но это как нипро)
а как-то можно поставить перед ними "главный" триггер(или свитч какой)? чтобы допустим у него ивент был AAA и тэг XXX, а у  триггеров(111, 222, 333) был тег XXX
И чтобы при нажатии на этот "главный" триггер(с ивентом AAA) приводились в действия сразу три триггера(111, 222, 333) и они бы в свою очередь, включали лампочки с тегами 1,2 и 3.

...или это вообще как-то по другому делается?

p.s. если есть пример то в ut.2 лучше, я нагляднее когда в едиторе открываю, быстрее понимаю что к чему.
GP
Сначала об ивентах, и в чем разница. во превых ивент имее длительность. К примеру usetrigger делает triggerevent - ивент наступает один раз, запускает чегото и все . 1 Tick. Триггер который реагирует на PlayerProximity обычно видает event пока игрок не отойдет/умрет (триггер который держыт двери к примеру). Такой ивент роботает каждый tick.
Так вот, добавил елементарную функцыю реакцыи на ивент, тепер switch можно переключить другим триггером или ивентом мувера, но!!! Если его переключать триггером, который реагирует на присутствие игрока, то он будет клацать туда-сюда тищы раз в секунду, пока игрок не отойдет.
Я веду к тому что стандартная система тригеров и тегов отстой (теги полезны только для использования их как переменных другим кодом без изменения стандартного контента).

Добавлено (09 Января 15, 03:15)
---------------------------------------------
Насчет лампочек - зачем эти теги?
Хочеш включить много лампочек разом? тегами? юзтриггером?
Заходиш в ActorClasses, разворачиваеш до Triggers -> UseTrigger
жмеш на нем ПКМ -> New, сунеш в пакедж myLevel, назваеш актор к примеру LightTrigger;

Код
// Должен создатса файл с подобной шапкой:
class LightTrigger extends UseTrigger placeable;

//ниже сама пишеш сколько тебе надо ивентов за раз:

var() Name Event1;
var() Name Event2;
var() Name Event3;
//
//
var() Name EventN;

//деальше копируеш строчки дел обычного юзтриггера столько,
//сколько у тебя ивентов, выглядит так:

function UsedBy( Pawn user )
{
TriggerEvent(Event1, self, user);
TriggerEvent(Event2, self, user);
TriggerEvent(Event3, self, user);
//
//
TriggerEvent(EventN, self, user);
}


ВСЁ!!! Жмеш компайл ченджед скриптс и все!!! 5 строчек и ПРО (я все одинаковое пишу в 1 строчку)!
В ActorClasseы находиш свой Light trigger, ставиш на карту и вписываеш все ивенты что надо и сохраняеш. За одно нажатие тригер выдаст хоть 1000 ивентов. Вообще примитв. На > 10 можно сделать масив с ивентами и сделать сколько хочеш ивентов, в редакторе просто добавлять в столбик. Я бы вообще предпочел делать без тегов в этом случае, а добавлять в масив каждую конкретную лампочку.
EVA
Цитата GP ()
Так вот, добавил елементарную функцыю реакцыи на ивент, тепер switch можно переключить другим триггером или ивентом мувера
спасибо, GP preved
Это решило все мои проблемы, так что это:
Цитата GP ()
Добавлено (09 Января 15, 03:15)
даже не понадобилось (т.к. с помощью твоего  добавил я сделала всё, что задумывала... а "Добавлено (09 Января 15, 03:15)" прочту потом на досуге...)

зы ...у меня вопрос: а что именно ты добавил в свитч, что он стал реагировать на триггер?
GP
Цитата
елементарную функцыю реакцыи на ивент:

Код
function Trigger( actor Other, pawn EventInstigator )
{
   UsedBy(EventInstigator);
}
XCanG
Ну использовать свои скрипты это даже правильнее, нежели стандартными методами, ибо костыли это всё.

Я кстати тут вспомнил, говоря о множестве акторов. Есть же у нас группы Groups (ну и браузер групп соответственно). В каждом акторе можно приписать свою группу или несколько через запятую. Собственно посредством скриптов можно ли влиять на эти группы? К примеру всё то же, что сказала Ева, но все лампочки записаны в одну группу, может ли триггер на эту группу воздействовать?
То есть вместо
Код
TriggerEvent(Event1, self, user);
TriggerEvent(Event2, self, user);
TriggerEvent(Event3, self, user);
у нас будет одна строчка с ссылкой на группу (это в случае если возможно, ну и я не знаю какая).

Мой IP сменился с 89.113.234.78/185.42.146.32 на 83.167.1.167. Теперь будет этот. Надолго. Порты те же.
http-сервер
.do impossible   beat unbeatable
GP
Посмотри в группе про эмиттеры, я там выкладывал ссылку на робочюю версию "системы" для передвижения декорацый, там и карта есть в пример. Суть в том, что как раз для каждого куска трасссы акторам задаетса группа. Актор который это все двигает в начале игры один раз проходитса по всем акторам на карте, и заносит их в масивы(прямая ссылка типа mylevel.mover0) соответственно каждой группе. Потом уже в tick-е он роботает только с теми акторами, которые "переписал", что гораздо быстрее чем каждый tick перебирать все акторы. Есть еще (переключатель декорацый, который при каждом повторе оределенные скрывает - один раз проежжая видим дом, второй раз в этом же месте мост, третий раз, вышку и т.д.), вот он вместо группы использует тег, но точно так-же как и группу - в начале игру записывает все в масив, а не ивентами. Группа и тег только как метки какие акторы надо брать. Ну суть посмотри код. Нет смыла юзать trigger light, можна из этого-же кода задавать яркость, цвет и т.д.
Форум - Russian Tournament » Игры » UnrealED » Как на UseTrigger поставить звук (sml[thread])
Страница 3 из 3«123
Поиск: