RU 📌 Pinned

Как сделать?

Dark[Ol(U23)leneri] #34 18.04.2010 22:57 6408 comments 2427159 views

Спасибо за быстрый ответ.
Странно, но когда я ввожу вместо PL, *p или *pl тогда описание вообще не выводит.

ShadowX2,
Так же, если вам необходимо выводить что-либо в основное окно описания, Вы можете делать это неявно. То-есть, не указывая *p.

В вашем примере, вы обновляете локацию, после того как нажимаете на действие. Соответственно, все данные, отрисованные на основной локации, обновляются.

В вашем условии так же есть условие:
IF Ключ = 0
Он будет выводить информацию по условию, указанному Вами.

Я не работал с действиями (поскольку считаю их, от части, бесполезными), поэтому не могу сказать точный порядок их работы. Поэтому не смогу подсказать как сделать лучше.
Однако, если у Вас простое разбитие по локациям и действиям, могу предложить такой вариант:

Spoiler
IF Ключ = 0:
  'На полу вы видите небольшой ключ.'
  ACT 'Взять ключ':
    Ключ = 1
    ADDOBJ 'Ключ'
    GOTO $CURLOC
  END
ELSE:
  'Вы взяли ключ.'
  ACT 'Идти дальше':
     ...
  END
END

Да, такой вариант мне подходит, спасибо за помощь :)

Дамир Белялов #654 24.04.2022 08:21 (3 years ago)

Помогите пожалуйста, не пойму в чем проблема! Непонятно почему не срабатывает правильно команда “jump”

Дамир Белялов #654 24.04.2022 08:35 (3 years ago)

Кстати еще вопрос, как в окне команды “msg” поменять заголовок “Информация” на свой, и можно ли поменять имя кнопки “ОК” на свою реплику?

Оператору jump значение передать нужно без двоеточия, тогда будет работать. Убери двоеточие и все.

Дамир Белялов #654 24.04.2022 10:34 (3 years ago)

Убрал, не работает

Дамир Белялов #654 24.04.2022 10:37 (3 years ago)

Убрал двоеточие, все равно не работает

Так из действия вроде jump не работает. Точно не скажу надо руководство глянуть.

Дамир Белялов,
Если у тебя такие проверки частые то легче проверку в dynamic запихнуть.

Дамир Белялов,
Потому что кто-то не читаете wiki, вот и не работает.

Spoiler

JUMP [$метка] - переход в текущем блоке кода на метку [$метка].
Метка обозначается как “:[название метки]”. После описания метки (через “&”) могут идти операторы.

Отдельными блоками кода считаются:
- Код “Выполнить при посещении” конкретной локации
- Каждая локация - отдельный блок кода
- Код действия даже если действие добавлено программно.
- Код в html-ссылке1).
- Код DYNAMIC/DYNEVAL

Значит, что поиск метки будет осуществляется только в пределах искомого блока. Действие это отдельный блок.
Если пишете так, лучше не используйте переходы по меткам в актах. Это может привести к неожиданным проблемам и ошибкам.

Дамир Белялов #654 24.04.2022 19:34 (3 years ago)

Кстати еще вопрос, как в окне команды “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), столкнетесь с ошибками. Каждая переменная на самом деле является массивом. Также настоятельно не рекомендуется использовать одну и ту же переменную для хранения текста и чисел одновременно.

Edited at 28.04.2022 06:12 (3 years ago)

Log in or Register to post comments.