База модов


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



Skyrim [28]Witcher 3 [9]Elder Scrolls Legends [17]
Dishonored 2 [14]Fallout 4 [2]Skyrim - Общее [11]
Oblivion [32]Fallout 3 [4]Creator Kit [16]
Construction Set [19]LORE [10]Бэйлон Гард [3]
Один Герой [8]Photoshop [9]Разное [19]

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

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



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



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

Урок написан Фантомом.
2862
Всего комментариев: 3
Ruslan-Esikov (20.11.2015 в 06:23) #3 Спам
avatar Спасибо, огромное.Очень позновательно,легче вникнуть и понять.
Ответить Like | 0
Rain_Show705 (08.11.2013 в 14:21) #2 Спам
avatar Сэнкс))
Ответить Like | 0
CrazyDoctor (19.10.2013 в 18:35) #1 Спам
avatar Спасибо. Наконец-то нормальный урок! Всегда было интересно, как делать меню.
avatar