База модов


Популярные моды




Создание меню

Сегодня мы разберём создание простого меню в Скайриме, пример возьму из моего плагина:



Для начала разберём раздел 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  



Вот в принципе и всё =)

Урок написан Фантомом.
Фантом
Посетители
Всего материалов: 309
7 699
25
Всего комментариев: 2
  1. Ruslan Анатольевич #2 Пожаловаться
    Спасибо, огромное.Очень позновательно,легче вникнуть и понять.
    20 ноября 2015 06:23 Like | 0
  2. Сэнкс))
    8 ноября 2013 14:21 Like | 0
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.