Форум » Общие вопросы по WME » Квесты от первого лица » Ответить

Квесты от первого лица

Voron: Чтобы создать квест от первого лица в скрипте сцены появление актёра нужно прописать: actor.Active = false; а остальное всё тожесамое просто на экране не будет МОЛЛИ :)

Ответов - 6

gambit: а в свою очередь как перенести окошко Caption, что над персонажем (ну скажем в низ экрана), чтобы при отключении видимости персонажа, не пропадала и функция Actor.Talk?

Pipec: Чтобы сделать квест от первого лица актера вообще не нужно загружать в игру Теперь о .Talk() Поскольку актера в игре нет, можно создать новый метод Talk() например в скрипте game.script. поскольку этот скрипт приаттачен к объекту Game, вызываться он будет Game.Talk(); Также нужно создать новое окно, содержащее элемент Static control Новый метод Talk должен открывать это окно, получать дескриптор элемента Static control и записывать в ресурс Text этого элемента нужную реплику (которая передается через параметры метода) Выглядит это примерно так: method Talk(replika) { var WinDialog = Game.LoadWindow("Путь к файлу окна"); var vOkno = WinDialog.GetControl("имя элемента Static control"); vOkno.Text = replika; код, реализовывающий паузу в игре на время, достаточное для прочтения текста Game.UnloadObject(WinDialog); }

gambit: благодарствую)) в качестве паузы поставил банальное Sleep(1000);, и привязал действие на LeftClick. огромное спасибо!


Pipec: Пойдет но не всегда, поскольку пока выполняется sleep сцена продолжает быть интерактивной. Нужно перед sleep делать Game.Interactive = false, а после sleep - Game.Interactive = true; К тому же величину задержки нужно изменять, исходя из длины выводимого сообщения, иначе, если задержка будет постоянной, то короткие реплики будут неоправдано долго висеть на экране, а длинные не успеешь прочитать. Если реплики не только выводятся на экран, а еще и озвучиваются, то реплика должна быть на экране, пока проигрывается звуковой файл. Это тоже должно быть реализовано в коде задержки

gambit: интерактивность выключается как отдельный вариант, т.к. нужно это преимущественно в роликах с субтитрами. а в качестве замены стандартного диалога нпс - интерактивность должна сохраняться, для быстрого переключения между объектами. да и для регулировки времени можно имхо, как и указывать дополнительные параметры во время вызова Game.Talk, так и написать несколько вариантов самой процедуры, с различной продолжительностью (хотя это мусорный вариант) в общем спасибо!

Kupo: Объясните пожалуйста ещё раз, куда засунуть этот код? И что такое Static control? И если можно листинг скрипта.



полная версия страницы