Как сделать?
…
newsash:
но код “меню_объекта” уже выполнен со старым значением.
а вон в чём дело.
Теперь понял GS это в вроде curloc только для другой ситуации. Да теперь все работает. Благодарен за помощь.
Pasha:
Теперь понял GS это в вроде curloc только для другой ситуации
Нет. $curloc - это название текущей локации. А GS - это оператор для выполнения кода локации.
И вот еще вопрос а можно как то по хитрому присваивать “действие” другой локации (не в той в которой сейчас игрок) сразу что то в роде loc ‘больница’ = act ‘лечить’ или только через переменные?
Pasha:
И вот еще вопрос а можно как то по хитрому присваивать “действие” другой локации (не в той в которой сейчас игрок) сразу что то в роде loc ‘больница’ = act ‘лечить’ или только через переменные?
В локации, где хочешь задавать действие, пишешь
можноЛечить = 1
а в локации с действием
if можнолечить:
act 'лечить':
код действия
end
end
Советую почитать справку для лучшего понимания.
Так то и есть через переменные: а после проверяется соответствие значения переменной условию и если совпадает, условие выполняется. Я просто думал вдруг есть способ без переменной: если нажата кнопка то в локации больница появляется действие - лечить. Справку читаю, примеры смотрю проверяю как работают, экспериментирую только не все понимаю - тот же “курлок” в примере с предметами он как бы обновлял всю локацию и предмет появлялся, но фраза в учебнике “возвращает название текущей локации” - ставит в ступор)
Pasha,
GOTO ‘имя_локации’
означает: перейти на локацию с именем “имя_локации”
$CURLOC “возвращает название текущей локации”. Текущая локация - это последняя локация, на которую был осуществлён переход. Если мы пришли на локацию “дом”, то в $CURLOC будет значение “дом”. Перешли на локацию “улица”, теперь в $CURLOC значение “улица”.
Таким образом,
GOTO $CURLOC
означает: “перейти на текущую локацию”, то есть просто перезаходит на текущую локацию. Мы на ней уже находимся, но перезапускаем её ещё раз. Это удобный приём, чтобы обновить содержимое текущей локации в соответствии с изменившимся состоянием игры.
Pasha:
Справку читаю, примеры смотрю проверяю как работают, экспериментирую только не все понимаю - тот же “курлок” в примере с предметами он как бы обновлял всю локацию и предмет появлялся, но фраза в учебнике “возвращает название текущей локации” - ставит в ступор)
курлок - это название текущей локации, а обновляет всю локацию команда GT $curloc
Aleks Versus, Newsash, Nex - спасибо.
И снова приветствую всех) Теперь у меня новый вопрос: есть переменные допустим “K12”, “K13” и тд. Если (if) значение одной переменной=1 то появляется текст. В одной локации таких переменных несколько, каждой соответствует свой текст. Проблема в том, что текст появляется в порядке указанном в коде и не важно что “К13” значение 1 было присвоено раньше чем “К12”, текст соответствующий переменной “К12” все равно будет выше чем текст появляющийся при “К13”. Локация где проверяется значение переменной простая (не локация счетчик), а значение переменной присваиваются в других локациях. Как сделать что бы текст шел в порядке присваивания переменной а не в порядке написанном в коде?
Pasha:
Как сделать что бы текст шел в порядке присваивания переменной а не в порядке написанном в коде?
Я вижу два варианта трактовки твоего сообщения: в одном случае у тебя есть проблема, что у тебя из-за “if k12=1: k13=1” весь текст в локации выводится сразу, а не по частям, а во втором случае тебе нужно при выводе отсортировать кусочки текста в порядке, зависящем от действий игрока. Какой вариант тебя интересует?
Зависящем от действий игрока.
Пусть есть массив ’$порядок_текстов[]’.
Для добавления фразы на вывод пишешь
if no arrpos('$порядок_текстов', 'фраза1'): $порядок_текстов[]='фраза1'
В локации вывода:
i = 0
:loop
if $порядок_текстов[i] = 'фраза1':
*pl 'фраза1'
end
if $порядок_текстов[i] = 'фраза2':
*pl 'фраза2'
end
i += 1
if i < arrsize('$порядок_текстов'): jump 'loop'
Это один из работающих вариантов, возможно есть более изящные.
newsash ОК. Спасибо. Буду экспериментировать теперь и с массивами.
Нет, не могу разобраться. Объясни на примере плиз. ##variant##