Онлайн-справочник по самым часто задаваемым вопросам из темы "Как сделать?" на форуме QSP.su

4.3. Как сделать меню в ссылках?

В: Как сделать меню в ссылках?

О:

Меню можно вызвать в любом месте игры, если воспользоваться оператором `menu`.

Можно вызвать прямо из кода локации, можно вызвать при нажатии на действие, а значит можно вызвать и из гиперссылки.

Обычно гиперссылка выводится на экран так:

*pl "На берёзе выросло несколько <a href=''>яблок</a>."

В атрибуте `href`, если бы мы имели дело с html-документом, обычно пишется url — адресс страницы в интернете. Однако в QSP мы можем размещать внутри этого атрибута строки кода. В том числе и строку типа:

menu "$меню_яблоко"

Само собой массив `$меню_яблоко[]` должен быть заполнен до вызова меню, например на самой первой локации в игре.

Чтобы плеер понял, что в атрибуте `href` находится не url, а какой-то код, мы должны указать перед этим кодом ключевое слово `EXEC`:

*pl "На берёзе выросло несколько <a href='exec: '>яблок</a>."

Теперь нам нужно вставить после EXEC: нашу строку кода с вызовом меню. Однако, мы уже использовали кавычки ("") для указания границ строки, и апострофы ('') для указания границ атрибута `href`. А в нашей строке кода тоже есть кавычки. Как быть?

Мы можем экранировать кавычки кода от QSP с помощью дублирования:

*pl "На берёзе выросло несколько <a href='exec:menu ""$меню_яблоко""'>яблок</a>."

Или, мы можем экранировать кавычки атрибута href от QSP с помощью того же дублирования:

*pl "На берёзе выросло несколько <a href=""exec:menu '$меню_яблоко'"">яблок</a>."

Эти два варианта равнозначны, используйте тот, что удобнее.

Теперь, когда мы щёлкнем по слову "яблок", на экране появится меню.