RU

Как сделать меню для использования предметов ?

MrGreen #1261 18.10.2014 09:19 9 comments 7738 views

Что бы при нажатии на предмет возникало окно с названиями действия “например:читать или выбросить”

MrGreen,
см. документацию: Меню

Спасибо большое

Aleks Versus Moderator 18.10.2014 10:37 (11 years ago)

может поможет #меню.rar#

Извините,но я так и не понял… Можно конкретный пример?

Aleks Versus Moderator 23.01.2015 15:27 (11 years ago)

Sos21,
у меня в сообщении выше ссылка на файл с конкретным примером. А ещё пример есть здесь (см. раздел “Разработчикам”).

Да, я смотрел статью как создавать меню,однако так и не смог реализовать это в своей игре :( . Я посмотрю ваши примеры,спасибо за помощь.

Хм… Может я чего то не понимаю, или зашел не туда. Тут нету примера который я хотел бы увидить. Дело в том,что я ищу как сделать “Всплывающие” меню,которое возникло бы при нажатие на предмет в окне “Предметы”.

Aleks Versus Moderator 24.01.2015 07:25 (11 years ago)

Sos21,
мне кажется, ты дочитал не до конца. Хорошо, положим там нигде нету. Слушай внимательно.
Предполагается, что у тебя уже есть кое-какие локации в твоей игре по-крайней мере стартовая.
Первое, что нужно сделать, это создать локацию-обработчик выбора предмета. Назвать её можно как угодно, я обычно (чтоб не путаться) называю onObjSel.
Далее на стартовой (самой первой) локации пишем:

! #самая первая локация в игре
$onobjsel = "onObjSel"

т.е. переменной $onobjsel присваиваем имя своей локации-обработчика выбора предмета.
Предмет, как ты наверное знаешь, создаётся командой addobj. Допустим, где-то в своей игре ты добавил предмет “Отвёртка”:

addobj "Отвёртка"

Теперь пишем меню для предмета. Это делается заполнением массива. Имя массива может быть любым, но как правило в него стараются поместить слово меню или menu для удобства чтения. Наш назовём “$меню_отвертки”. Можно было бы назвать “$отвертка_меню” или “$screw_menu”, или “$отвёртка”, или “$любое_случайное_имя”. Главное запомнить это имя, потому что мы его будем использовать при вызове меню. Итак, заполняем массив “$меню_отвертки”. В массив, начиная с нулевого элемента заносятся пункты меню, которые представляют собой строки. Первая часть строки - текст, который будет выводиться в меню, вторая часть - название локации, к которой обратится плеер, когда игрок выберет этот пункт меню. Первая часть от второй отделяется двоеточием.

$меню_отвертка[0]="Осмотреть:look"
$меню_отвертка[1]="Использовать:use"
$меню_отвёртка[2]="Выбросить:put"

Не забываем создать локации с такими именами (look, use, put в нашем примере) и поместить в них нужный код.
Последнее, что нужно сделать, написать кой-чего в локации, имя которой мы передали переменной $onobjsel. Эта локация вызывается всякий раз, когда игрок нажимает на предмет в окне “предметы”. А пишем на ней следующее:

! #локация-обработчик выбора предмета
! # например onObjSel
if $selobj="Отвёртка":
! если выделен предмет "Отвёртка"
  ! вызываем меню этого предмета командой menu
  menu "$меню_отвертка"
end
! ... здесь может быть код для других предметов
! снимаем выделение с предмета, последней строкой:
unsel

Обрати внимание; когда используешь команду “menu”, в качестве параметра для неё указывается строка, в которой вписано имя массива, который мы создавали чуть выше.
Вроде бы всё, должно работать.
#Вот пример наикратчайший#

Спасибо,ответ весьма исчерпывающий и вопросов больше не осталось.

Log in or Register to post comments.