Перейти к содержанию
Планета Deus Ex
Авторизация  
Kronos

Coding

Рекомендуемые сообщения

Возникла проблема. Короче мне надо сделать так чтобы при старте или загрузке уровня начинал играть трэк. А для этого нужно задействовать скрипт,который бы триггерил MusicEvent. А как это сделать, кто-нибудь знает? Например, скрипт в MissionScript в функции PostBeginPlay()?

Или может как-то по другому можно?

А может сделать через VSDDX, но как?

Поделиться сообщением


Ссылка на сообщение

Сувать в Timer()


if (!flags.GetBool('MS_MoscowStartUpPlayed'))

 {

                   foreach AllActors(class'Dispatcher', disp, 'MapStartDispatcher')

            disp.Trigger(None, None);



     Player.StartDataLinkTransmission("DL_Startup");

            flags.SetBool('MS_MoscowStartUpPlayed', True,, 5);

               }

Поделиться сообщением


Ссылка на сообщение
А может сделать через VSDDX, но как?

 

Немного не понял суть самого вопроса.

 

Если делать все через MissionScript то можно не вставлять на карту MusicControl, а работать классом MPlayer.

 

class MissionX extends MissionScript

var MPlayer MP;

 

function PostBeginPlay()

{

MP = Spawn(class'MP', Self);

MP.SetBaseFolder("e://...//");

MP.SetSilence();

MP.PlayTrack("...");

}

Поделиться сообщением


Ссылка на сообщение

Понимаете в чём проблема, когда вы загружаете уровень загружаете сэйв, должна начинать играть музыка.

Первым способом ещё не пробовал, а вот вторым попробовал. Короче, сейчас нет времени, потом разбираться буду.

Дошло до того, что я вставил функцию PlayTrack() в таймер и потом отключил таймер, но это не удобно. Надо будет сделать новый класс под MPlayer с этими функциями.

Короче, а как теперь остановить проигрывание, когда мы, например титры из главного меню включаем? Музыка продолжает играть. Есть ли так какая-то функция, когда игрок покидает уровень, чтобы туда вставить остановку проигрывания?

Поделиться сообщением


Ссылка на сообщение

class MissionX extends MissionScript

var MPlayer MP;

 

function PostBeginPlay()

{

MP = Spawn(class'MP', Self);

MP.SetBaseFolder("e://...//");

MP.SetSilence();

MP.PlayTrack("...");

}[/color]

 

 

А я сделал вот так (это в Mission Script):

 

simulated function PostBeginPlay()

{

SetTimer(1.0,true);

}

 

simulated function Timer()

{

MP = Spawn(class'MPlayer', Self);

MP.SetBaseFolder("..//Music//");

MP.SetSilence();

MP.PlayTrack("sw.mp3");

SetTimer(0, false);

}

А чем отличаются обычные функции от simulated?

Поделиться сообщением


Ссылка на сообщение
Понимаете в чём проблема, когда вы загружаете уровень загружаете сэйв, должна начинать играть музыка.

Первым способом ещё не пробовал, а вот вторым попробовал. Короче, сейчас нет времени, потом разбираться буду.

Дошло до того, что я вставил функцию PlayTrack() в таймер и потом отключил таймер, но это не удобно. Надо будет сделать новый класс под MPlayer с этими функциями.

Короче, а как теперь остановить проигрывание, когда мы, например титры из главного меню включаем? Музыка продолжает играть. Есть ли так какая-то функция, когда игрок покидает уровень, чтобы туда вставить остановку проигрывания?

Я, чесно сказать, проблемы не понимаю. Ну сменил ты дефолтную музыку с помощью MusicEvent, ну сохранился, ну загрузил сэйв - музыка опять играть начнёт.

А чтобы на выходе чиво сделать - ковыряй PreTravel() в missionscript.

Поделиться сообщением


Ссылка на сообщение

simulated вроде как то связан с мультиплеером.

 

 

Есть ли так какая-то функция, когда игрок покидает уровень, чтобы туда вставить остановку проигрывания?

Функция PreTravel()

 

function PreTravel()

{

StopPlayback();

}

Поделиться сообщением


Ссылка на сообщение
simulated вроде как то связан с мультиплеером.

 

 

Есть ли так какая-то функция, когда игрок покидает уровень, чтобы туда вставить остановку проигрывания?

Функция PreTravel()

 

function PreTravel()

{

StopPlayback();

}

Что такое simulated? Всё, что связанно с мультиплеером, закрыто в условие if(тип игры==мультиплеер). Других реализаций не видел.

Поделиться сообщением


Ссылка на сообщение

Если не ошибаюсь, simulated говорит о том, что функция должна выполняться как на сервере, так и на клиенте.

Поделиться сообщением


Ссылка на сообщение
Я, чесно сказать, проблемы не понимаю. Ну сменил ты дефолтную музыку с помощью MusicEvent, ну сохранился, ну загрузил сэйв - музыка опять играть начнёт.

 

Понимаешь, Дед, я не юзаю дефолтную музыку по той причине, что когда меняется State игрока (combat, dying...), меняется трэк, а мне этого не нужно. Мне надо как-то так музыку включить. Если юзать MusicEvent, трэки не меняются при смене Stat'а. Вот это мне и нужно.

Проблема остаётся актуальной.

 

Кстати, simulated выполняются только на клиенте.

Поделиться сообщением


Ссылка на сообщение
Я, чесно сказать, проблемы не понимаю. Ну сменил ты дефолтную музыку с помощью MusicEvent, ну сохранился, ну загрузил сэйв - музыка опять играть начнёт.

 

Понимаешь, Дед, я не юзаю дефолтную музыку по той причине, что когда меняется State игрока (combat, dying...), меняется трэк, а мне этого не нужно. Мне надо как-то так музыку включить. Если юзать MusicEvent, трэки не меняются при смене Stat'а. Вот это мне и нужно.

Проблема остаётся актуальной.

 

Кстати, simulated выполняются только на клиенте.

В 2027 я отключал смену состояния музыки так:

0. (опционально) добавлял в DeusExLevelInfo новую bool-переменную bStaticMusic.

1. В Классе игрока модифицировал функцию UpdateDynamicMusic примерно так:


...

  if (info.bStaticMusic != True)

  {

//тут идёт код смены стэйта

  }

...

Теперь музыка на этом уровне не меняла своего состояния.

Поделиться сообщением


Ссылка на сообщение

Спасибо Дед. Помогло.

Только я немного по-другому сделал. Через флаги. Если флаг тру, то музыка не меняется, если фолс, меняется. Флаг же можно менять по ходу игры.

Поделиться сообщением


Ссылка на сообщение

Что такое Instigator?

Поделиться сообщением


Ссылка на сообщение

Инстигатор - тот, по чьему хотению что-то произошло...

То есть например pawn, который кого-то напугал или устроил драку.

Или тот, от кого исходит шум... и так далее.

Поделиться сообщением


Ссылка на сообщение

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  
×
×
  • Создать...