Сегодня мы разберём создание простого меню в Скайриме, пример возьму из моего плагина: Для начала разберём раздел Message Вводим уникальный ID, заголовок в принципе можно любой, в игре у нас будет отображаться лишь Текст сообщения. Далее создаём кнопки.У меня их 3. Вот, что у меня получилось: Теперь нам нужен скрипт.Его мы ставим на нужный нам активатор. Вот пример моего скрипта. Код Scriptname _afMessage2 extends ObjectReference Message Property myMessage2 Auto Quest Property MyQuwsts Auto ObjectReference Property Lodka1 Auto ObjectReference Property Teleport Auto ObjectReference Property Teleport1 Auto int f Event OnActivate(ObjectReference akActionRef) f = myMessage2.show() if f == 2 ; do nothing - player chose "do nothing" else if f == 0 Game.GetPlayer().MoveTo(Teleport) elseif f == 1 && (MyQuwsts.GetStage() == 18) Lodka1.Enable() Game.GetPlayer().MoveTo(Teleport1) Disable() elseif f == 1 && (MyQuwsts.GetStage() <= 17) Debug.MessageBox("Сначала выполните задание!") endif endif endEVENT Теперь я хочу объяснить вам его работу: В Property, мы создаём Message, где указываем наш Message, который мы создали вначале. Так же вы можете указать любые данные. Далее я ввёл переменную f. int f Это для облегчения скрипта. f = myMessage2.show() Это значение даёт понять, что f, теперь значится как наш Мессадж. Структура такова: if f == 0 else if f == 1 elseif f == 2 Вспомним наши циферки: 0 - Это у меня Взобраться на лодку 1 - Это "Уплыть от сюда" 2 - "Выйти" Что бы выйти из меню, просто ничего не надо после if f == 0.Что бы оно ничего не выполняло. Так же можно добавить свои условия.Что бы это сделать нужно сделать так: elseif f == 1 && (MyQuwsts.GetStage() == 18) Это значит если стадия указанного квеста будет равна 18, то выполнится действие, которое идёт после кнопки. Я поставил 2 одинаковых кнопки, но зачем? А за тем, что у них разные условия. Так можно ставить сколько угодно кнопок. Чистый скрипт: Код Scriptname (МОЙ СКРИПТ) ObjectReference Message Property (ВАШ МЕССАДЖ) Auto int f Event OnActivate(ObjectReference akActionRef) f = (ВАШ МЕССАДЖ).show() if f == 4 ; && (Условие, если нужно) Кнопка 4 ; Ничего не выполняет. else if f == 0 ; && (Условие, если нужно) Кнопка 0 ; Что делает кнопка? elseif f == 1 ; && (Условие, если нужно) Кнопка 1 ; Что делает кнопка? elseif f == 2 ; && (Условие, если нужно) Кнопка 2 ; Что делает кнопка? endif endif endEVENT Вот в принципе и всё =) Урок написан Фантомом. |
Всего комментариев: 2 | |