Перейти к содержанию
Планета 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)

  {

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

  }

...

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

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


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

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

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

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


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

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

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

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

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


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

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

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

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

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

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

Войти

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

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