народ помогите, кто чем может))) желательно, чтобы при нажатии игроком на [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
В общем принцип такой, у тебя 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
да тут расписано больше чем сам код занимает так уж быть, вот обычный Switch в формате ut2. Position это положение со старта. Есть отдельные ивенты и звуки по включению и выключению. Звук который надо воспроизводить цыклически ставитса в AmbientSound (громкость будет как OnVolume), ну и если со старта выключено, то надо не забыть SoundVolume = OffVolume (тоесть 0). Если надо чтоб звук шел не из триггера а с другого места, то надо в Speaker указать актор который будет выдавать звук, у того актора должен быть указан AmbientSound.
Добавлено (09 Января 15, 00:22) --------------------------------------------- И у меня там стоит bHidden=false, чтоб в игре не было видно надо поставить bHidden=true, если вдруг кто не знает))).
Сообщение отредактировал GP - Пятница, 09 Января 15, 00:17
мне вот ещё интересно: допустим у меня три триггера с ивентами 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 лучше, я нагляднее когда в едиторе открываю, быстрее понимаю что к чему.
Сообщение отредактировал EVA - Пятница, 09 Января 15, 02:06
Сначала об ивентах, и в чем разница. во превых ивент имее длительность. К примеру 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;
//деальше копируеш строчки дел обычного юзтриггера столько, //сколько у тебя ивентов, выглядит так:
ВСЁ!!! Жмеш компайл ченджед скриптс и все!!! 5 строчек и ПРО (я все одинаковое пишу в 1 строчку)! В ActorClasseы находиш свой Light trigger, ставиш на карту и вписываеш все ивенты что надо и сохраняеш. За одно нажатие тригер выдаст хоть 1000 ивентов. Вообще примитв. На > 10 можно сделать масив с ивентами и сделать сколько хочеш ивентов, в редакторе просто добавлять в столбик. Я бы вообще предпочел делать без тегов в этом случае, а добавлять в масив каждую конкретную лампочку.
Сообщение отредактировал GP - Пятница, 09 Января 15, 03:33
Ну использовать свои скрипты это даже правильнее, нежели стандартными методами, ибо костыли это всё.
Я кстати тут вспомнил, говоря о множестве акторов. Есть же у нас группы Groups (ну и браузер групп соответственно). В каждом акторе можно приписать свою группу или несколько через запятую. Собственно посредством скриптов можно ли влиять на эти группы? К примеру всё то же, что сказала Ева, но все лампочки записаны в одну группу, может ли триггер на эту группу воздействовать? То есть вместо
Посмотри в группе про эмиттеры, я там выкладывал ссылку на робочюю версию "системы" для передвижения декорацый, там и карта есть в пример. Суть в том, что как раз для каждого куска трасссы акторам задаетса группа. Актор который это все двигает в начале игры один раз проходитса по всем акторам на карте, и заносит их в масивы(прямая ссылка типа mylevel.mover0) соответственно каждой группе. Потом уже в tick-е он роботает только с теми акторами, которые "переписал", что гораздо быстрее чем каждый tick перебирать все акторы. Есть еще (переключатель декорацый, который при каждом повторе оределенные скрывает - один раз проежжая видим дом, второй раз в этом же месте мост, третий раз, вышку и т.д.), вот он вместо группы использует тег, но точно так-же как и группу - в начале игру записывает все в масив, а не ивентами. Группа и тег только как метки какие акторы надо брать. Ну суть посмотри код. Нет смыла юзать trigger light, можна из этого-же кода задавать яркость, цвет и т.д.