RU

Меню

Tarq78 #639 25.04.2013 02:09 3 comments 5822 views

Доброго времени суток
Можно ли сделать сделать меню не так как в примере с ссылками на 3 локации-действия:

Spoiler

IF selobj = ‘Кот’:
$кошак[0] = ‘Осмотреть:осмотр_кота’
$кошак[1] = ‘Погладить:погладь_кота’
$кошак[2] = ‘Положить:полож_кота’
menu ‘$кошак’
unsel
end

А вот так хотелось бы с ссылкой на одну локу в которой будет выбор трёх действий:

Spoiler

IF selobj = ‘Кот’:
$кошак[0] = ‘Осмотреть:Кошак,1’
$кошак[1] = ‘Погладить:Кошак,2’
$кошак[2] = ‘Положить:Кошак,3’
menu ‘$кошак’
unsel
end

Лока Кошак

Spoiler

if $ARGS[0]=‘1’:
‘осмотреть’
end
if $ARGS[0]=‘2’:
‘погладить’
end
if $ARGS[0]=‘3’:
‘положить’
end

П.с. Неохота плодить кучу лок для всех вариантов действий

Edited at 25.04.2013 02:17 (12 years ago)

Tarq78,
в справке написано:

В локацию-обработчик выбора пункта меню передаётся аргумент (ARGS[0]) - позиция выбранного пункта. Позиции элементов меню индексируются с 1.

Делай так:

! локация ONOBJSEL
IF $SELOBJ = 'Кот':
    $кошак[0] = 'Осмотреть:Кошак'
    $кошак[1] = 'Погладить:Кошак'
    $кошак[2] = 'Положить:Кошак'
    MENU '$кошак'
    UNSEL
END

! локация Кошак
IF ARGS[0] = 1:
    'осмотреть'
END
IF ARGS[0] = 2:
    'погладить'
END
IF ARGS[0] = 3:
    'положить'
END

Tarq78:

Можно ли сделать сделать меню не так как в примере…

Можно воспользоваться модулем расширения оператора MENU: подробнее здесь. С его помощью можно не только прописывать вызов одной и той же локации с разными параметрами, но задавать условия при выполнении которых пункт должен включаться в формируемое меню.

Спасибо Nex и Olegus t.Gl.

Log in or Register to post comments.