Модуль для работы с меню (расширение функционала оператора "menu")
Обновил модуль (и написал документацию) для расширения функционала оператора “MENU”. Что с его помощью можно делать:
- Передавать в вызываемую локацию/функцию произвольное число параметров.
- Получать время, затраченное игроком на выбор пункта из меню.
- Добавлять в меню пункты, появляющиеся в нём только при соблюдении ряда условий.
- Прописывать выполняемый код прямо в настройках пункта меню, без отсылки к другим локациям/функциям.
Текущая версия: 1.1 (скачать)
Документация on-line: ссылка
Пример кода работы с обычным меню:
GS 'Меню.Создать','МенюПещера'
GS 'Меню.ДобавитьПункт','МенюПещера','Осмотреть пещеру','','ДействияВПещере','осмотреть'
GS 'Меню.ДобавитьПункт','МенюПещера','Обыскать пещеру','','ДействияВПещере','осмотреть','тщательно'
*NL '<p>Вы сидите посреди <a href="exec: GS ''Меню.Вызвать'',''МенюПещера''">пещеры</a>.</p>'
Модуль (документацию и пример работы) можно скачать здесь.
Вопросы и комментарии можно оставлять как здесь, так и в основной теме модуля.
Может кому-то будет полезно :)
Добавил модуль с англоязычными вариантами команд. В архиве (в первом сообщении темы ссылка на модуль также изменена на актуальную) лежат обе версии. В документацию добавлены англоязычные аналоги команд.
Обновил модуль (версия 1.1):
- Добавлен оператор “Меню.ОбработкаСобытия” (”Menu.AddEvent”).
- Время, потраченное на выбор действия из меню, подсчитывается даже при отказе от выбора.
Здравствуйте.
А как удалить пункт? Только пункт, не все меню. Просто мне нужно сделать так: например, если ГГ изучил книгу, пункт “Изучил книгу” в меню книги удаляется навсегда.
Prophet:
А как удалить пункт? Только пункт, не все меню. Просто мне нужно сделать так: например, если ГГ изучил книгу, пункт “Изучил книгу” в меню книги удаляется навсегда.
Хороший вопрос. Пока что реализовать данную задачу можно только указав у пункта меню условие, чтобы он включался, только если ГГ ещё не изучил книгу. В этом случае никаких дополнительных действий делать не нужно: пока ГГ не изучил книгу, данный пункт будет присутствовать, как только изучил — из меню он пропадёт автоматически.
В примере, который идёт в комплекте с модулем, есть реализация подобной задачи:
!Добавляем пункт меню с условием, т.е. этот пункт появляется в меню только при выполнении определенного условия
GS 'Меню.ДобавитьПункт', 'МенюСундук', 'Открыть сундук'
!Задаем условие включения пункта в меню
GS 'Меню.ДобавитьУсловие', 'МенюСундук', {Result = IIF(СундукОткрыт = 1, 0, 1)}