Поскольку реализуемый мной проект основан на выпадающих при нажатии на ссылках в тексте меню с перечнем вариантов действий, то этот модуль — один из главных! — попытка сделать процесс формирования и использования подобных меню удобным и функциональным. Ранее я выкладывал наброски подобного — теперь это полноценный модуль, в котором я почистил код, кое-что переписал, добавил кое-какие новшества, написал документацию и пример использования.
Данный модуль предоставляет следующие возможности:
Текущая версия: 1.1 (скачать)
Документация on-line: https://ifiction.ru/h/otg_lib_menu_help.html
Пример работы с обычным меню:
!Создаем обычное меню для объекта "Пещера". GS 'Меню.Создать','МенюПещера' GS 'Меню.ДобавитьПункт','МенюПещера','Осмотреть пещеру','','ДействияВПещере','осмотреть' GS 'Меню.ДобавитьПункт','МенюПещера','Обыскать пещеру','','ДействияВПещере','осмотреть','тщательно' *NL '<p>Вы сидите посреди <a href="exec: GS ''Меню.Вызвать'',''МенюПещера''">пещеры</a>.</p>'
Пример работы с усложнённым меню:
!Создаем усложненное меню для объекта "Сундук". GS 'Меню.Создать','МенюСундук' !---------- !Добавляем пункт меню со встроенным выполняемым кодом GS 'Меню.ДобавитьПункт','МенюСундук','Осмотреть сундук' !При выборе пункта меню не вызывается локация-обработчик, а выполняется заданный код GS 'Меню.ДобавитьМодуль','МенюСундук',{ *NL if СундукОткрыт=0: *NL 'Крепкий деревянный сундук с очень простым замком.' else *NL 'Сундук пуст.' end } !---------- !Добавляем пункт меню с условием, т.е. этот пункт появляется в меню только при выполнении определенного условия GS 'Меню.ДобавитьПункт','МенюСундук','Открыть сундук' !Задаем условие включения пункта в меню GS 'Меню.ДобавитьУсловие','МенюСундук',{Result=IIF(СундукОткрыт,0,-1)} !Назначаем код, который будет выполняться при выборе пункта GS 'Меню.ДобавитьМодуль','МенюСундук',{ *NL *NL 'Поколодовав немного над замком, вы открыли сундук. На это ушло '+func('Меню.Время','МенюСундук')+' миллисекунд.' СундукОткрыт=-1 } *NL '<p>Перед вами стоит <a href="exec: GS ''Меню.Вызвать'',''МенюСундук''">сундук</a>.</p>'
Неактивен
Спасибо!. Удобный модуль
Только вопрос.. Можно ли заменить команды на английские термины...))
Наример
Menu.Create
Menu.Add_Item
Menu.Add_Condition
Menu.Add_Mod
Menu.Call
Menu.Select
Menu.Time
Menu.Del
Ну или чтото в этом роде.. просто так удобней когда команды на латинице))
Отредактировано Tedi (13.01.2011 18:52)
Неактивен
Tedi написал:
Спасибо!. Удобный модуль
Только вопрос.. Можно ли заменить команды на английские термины...))
Ну или чтото в этом роде.. просто так удобней когда команды на латинице))
Сделано. В архиве лежат обе версии. В документации также добавлены англоязычные варианты команд.
Неактивен
Обновил модуль (версия 1.1):
Неактивен
Так, для своего проекта в модуль работы с меню кое-что добавил:
Неактивен