Как сделать?
…
Спасибо за быстрый ответ.
Странно, но когда я ввожу вместо PL, *p или *pl тогда описание вообще не выводит.
ShadowX2,
Так же, если вам необходимо выводить что-либо в основное окно описания, Вы можете делать это неявно. То-есть, не указывая *p.
В вашем примере, вы обновляете локацию, после того как нажимаете на действие. Соответственно, все данные, отрисованные на основной локации, обновляются.
В вашем условии так же есть условие:
IF Ключ = 0
Он будет выводить информацию по условию, указанному Вами.
Я не работал с действиями (поскольку считаю их, от части, бесполезными), поэтому не могу сказать точный порядок их работы. Поэтому не смогу подсказать как сделать лучше.
Однако, если у Вас простое разбитие по локациям и действиям, могу предложить такой вариант:
Spoiler
IF Ключ = 0:
'На полу вы видите небольшой ключ.'
ACT 'Взять ключ':
Ключ = 1
ADDOBJ 'Ключ'
GOTO $CURLOC
END
ELSE:
'Вы взяли ключ.'
ACT 'Идти дальше':
...
END
END
Да, такой вариант мне подходит, спасибо за помощь :)
Кстати еще вопрос, как в окне команды “msg” поменять заголовок “Информация” на свой, и можно ли поменять имя кнопки “ОК” на свою реплику?
Оператору jump значение передать нужно без двоеточия, тогда будет работать. Убери двоеточие и все.
Убрал, не работает
Так из действия вроде jump не работает. Точно не скажу надо руководство глянуть.
Дамир Белялов,
Если у тебя такие проверки частые то легче проверку в dynamic запихнуть.
Дамир Белялов,
Потому что кто-то не читаете wiki, вот и не работает.
Spoiler
JUMP [$метка] - переход в текущем блоке кода на метку [$метка].
Метка обозначается как “:[название метки]”. После описания метки (через “&”) могут идти операторы.
Отдельными блоками кода считаются:
- Код “Выполнить при посещении” конкретной локации
- Каждая локация - отдельный блок кода
- Код действия даже если действие добавлено программно.
- Код в html-ссылке1).
- Код DYNAMIC/DYNEVAL
Значит, что поиск метки будет осуществляется только в пределах искомого блока. Действие это отдельный блок.
Если пишете так, лучше не используйте переходы по меткам в актах. Это может привести к неожиданным проблемам и ошибкам.
Кстати еще вопрос, как в окне команды “msg” поменять заголовок “Информация” на свой, и можно ли поменять имя кнопки “ОК” на свою реплику?
Дамир Белялов:
Кстати еще вопрос, как в окне команды “msg” поменять заголовок “Информация” на свой, и можно ли поменять имя кнопки “ОК” на свою реплику?
Через код qsp - нет.
Привет, я тут решила поучиться создавать рандом, но выходит как-то не очень.
Вот, например, вот такой код:
$конфеты[1] = '2 конфеты'
$конфеты[2] = '3 конфеты'
$конфеты[3] = '4 конфеты'
$конфеты[4] = '5 конфет'
ACT 'Взять немного конфет':
конфеты = RAND(1,4)
'Вы взяли <<$конфеты[конфеты]>>.'
END
Можно ли сделать так, чтобы рандом лучше работал? Чтобы не появлялся один и тот же текст больше двух раз подряд? А то часто бывает так, что появляется один и тот же текст по 4 или 5 раза подряд.
ShadowX2,
чтобы исключить повторение, необходимо запоминать предыдущее значение. Чтобы контролировать количество повторений, нужно добавить счетчик.
$конфеты[1] = '2 конфеты'
$конфеты[2] = '3 конфеты'
$конфеты[3] = '4 конфеты'
$конфеты[4] = '5 конфет'
максимум_повторений = 1
ACT 'Взять немного конфет':
:еще_раз
число = RAND(1,4)
if число = предыдущее_значение:
счетчик += 1
if счетчик > максимум_повторений : jump 'еще_раз'
else
счетчик = 0
предыдущее_значение = число
end
'Вы взяли <<$конфеты[число]>>.'
END
И постарайтесь не использовать переменную и как массив, и как обычно. Иначе, пользуясь такими советами, как выше (от HronoStranger), столкнетесь с ошибками. Каждая переменная на самом деле является массивом. Также настоятельно не рекомендуется использовать одну и ту же переменную для хранения текста и чисел одновременно.



