Модуль для работы с меню (расширение функционала оператора "menu")

Модуль для работы с меню (расширение функционала оператора "menu")

Обновил модуль (и написал документацию) для расширения функционала оператора "MENU". Что с его помощью можно делать:

  • Передавать в вызываемую локацию/функцию произвольное число параметров.
  • Получать время, затраченное игроком на выбор пункта из меню.
  • Добавлять в меню пункты, появляющиеся в нём только при соблюдении ряда условий.
  • Прописывать выполняемый код прямо в настройках пункта меню, без отсылки к другим локациям/функциям.


Текущая версия: 1.1 (скачать)
Документация on-line: ссылка

Пример кода работы с обычным меню:

Код:

GS 'Меню.Создать','МенюПещера'

GS 'Меню.ДобавитьПункт','МенюПещера','Осмотреть пещеру','','ДействияВПещере','осмотреть'
GS 'Меню.ДобавитьПункт','МенюПещера','Обыскать пещеру','','ДействияВПещере','осмотреть','тщательно'
*NL '<p>Вы сидите посреди <a href="exec: GS ''Меню.Вызвать'',''МенюПещера''">пещеры</a>.</p>'

Модуль (документацию и пример работы) можно скачать здесь.
Вопросы и комментарии можно оставлять как здесь, так и в основной теме модуля.

Изменено: Olegus t.Gl.
15.Янв.11 00:13:09
Olegus t.Gl.
useravatar
Offline
137 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Модуль для работы с меню (расширение функционала оператора "menu")

Может кому-то будет полезно smile

Ajenta
демиург
useravatar
Offline
1364 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Модуль для работы с меню (расширение функционала оператора "menu")

Добавил модуль с англоязычными вариантами команд. В архиве (в первом сообщении темы ссылка на модуль также изменена на актуальную) лежат обе версии. В документацию добавлены англоязычные аналоги команд.

Olegus t.Gl.
useravatar
Offline
137 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Модуль для работы с меню (расширение функционала оператора "menu")

Обновил модуль (версия 1.1):

  • Добавлен оператор "Меню.ОбработкаСобытия" ("Menu.AddEvent").
  • Время, потраченное на выбор действия из меню, подсчитывается даже при отказе от выбора.

Olegus t.Gl.
useravatar
Offline
137 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Модуль для работы с меню (расширение функционала оператора "menu")

Здравствуйте.
А как удалить пункт? Только пункт, не все меню. Просто мне нужно сделать так: например, если ГГ изучил книгу, пункт "Изучил книгу" в меню книги удаляется навсегда.

Prophet
Экспериментатор
useravatar
Offline
31 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Модуль для работы с меню (расширение функционала оператора "menu")

Prophet написал(а):

А как удалить пункт? Только пункт, не все меню. Просто мне нужно сделать так: например, если ГГ изучил книгу, пункт "Изучил книгу" в меню книги удаляется навсегда.

Хороший вопрос. Пока что реализовать данную задачу можно только указав у пункта меню условие, чтобы он включался, только если ГГ ещё не изучил книгу. В этом случае никаких дополнительных действий делать не нужно: пока ГГ не изучил книгу, данный пункт будет присутствовать, как только изучил — из меню он пропадёт автоматически.
В примере, который идёт в комплекте с модулем, есть реализация подобной задачи:

Код:


!Добавляем пункт меню с условием, т.е. этот пункт появляется в меню только при выполнении определенного условия
GS 'Меню.ДобавитьПункт', 'МенюСундук', 'Открыть сундук'
!Задаем условие включения пункта в меню
GS 'Меню.ДобавитьУсловие', 'МенюСундук', {Result = IIF(СундукОткрыт = 1, 0, 1)}

Olegus t.Gl.
useravatar
Offline
137 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Информация

Статистика форума:
 
Всего тем:
970
Всего опросов:
14
Всего сообщений:
16790545
Сообщений на этой неделе:
9
Пользователи форума:
 
Всего пользователей:
2346
Последним зарегистрировался:
Rizrael