Forum.iFiction.Ru

iFiction.Ru · ifHub · FAQ · IFWiki · QSP · URQ · INSTEAD · AXMA

форум об interactive fiction, текстовых приключенческих играх и всём таком...

Вы не зашли.

0    0    #1
08.08.2015 15:39

DarkDes
Участник (+12)
Зарегистрирован: 27.07.2015
Сообщений: 56

Вопросы по URQ

Появился один вопрос относительно URQL.

Сцены\комнаты\локации могут иметь свои локальные переменные, которые не будут сбрасываться с каждым новых входом?

Конкретный пример того, что хотел реализовать:

Есть комната, там есть монстр, а у него есть "очки здоровья" и именно эти ОЗ должны сохраняться т.е. зашёл - пострелял немного, а затем сбежал, потом вернулся и добил монстра.

Такое можно реализовать? Конечно можно глобальную переменную объявить что-то вроде loc_room_gateA_monter_hp, но это как-то ... вроде должно быть что-то такое встроенное?

Неактивен

2    0    #2
09.08.2015 21:56

uux
Участник (+836, -80)
Откуда: Москва
Зарегистрирован: 02.12.2006
Сообщений: 1584

Re: Вопросы по URQ

В URQ нет локальных переменных, и это не объектно-ориентированный язык. Посещение/покидание локации в общем случае не влияет на значения переменных, если только не присваивать этим переменным значения в явном виде (из этого правила есть исключения, но пока ими можно пренебречь).

Посмотрите описание языка здесь: http://urq.plut.info/texts
(Там для старой версии под DOS, но сами принципы языка с тех пор не сильно поменялись).

Один из приемов, чтобы не запутаться в длинной череде похожих переменных - давать переменным, относящшимся к определенной локации, имя, начинающееся с имени этой локации.

Неактивен

1    0    #3
11.08.2015 06:01

uux
Участник (+836, -80)
Откуда: Москва
Зарегистрирован: 02.12.2006
Сообщений: 1584

Re: Вопросы по URQ

DarkDes написал:

Да, вроде смысле понятен. По сути это тогда получается собственные переменные рода "превлок" и "каррентлок". Но на самом деле понадобится только одна - превлок. Получается её каждый раз необходимо будет ставить для каждой локации или есть какой-то механизм для этого?

Из документации: current_loc и previous_loc  (строковые системные переменные) хранят имена соответственно текущей и предыдущей посещенной локаций. previous_loc удобно использовать для сохранения игры из любой локации при помощи действия типа use_inv_Запись. Для первой локации previous_loc равна ее имени (чтобы сохранение работало и для нее). current_loc и previous_loc  теперь меняются только при btn-переходах.

DarkDes написал:

Вроде имеется локация common - она вызывается при действии (переходе) или всегда (как обновление игры - каждый "кадр") ?

Локация common вызывается только при переходах по btn. Есть еще системная числовая переменная Common, позволяющая задать, к какой именно локации Common будет происходить обращение (например, при Common=5 вызываться будет локация Common_5).

Это, кстати, тоже из документации:).

Неактивен

1    0    #4
17.09.2015 07:42

uux
Участник (+836, -80)
Откуда: Москва
Зарегистрирован: 02.12.2006
Сообщений: 1584

Re: Вопросы по URQ

Ajenta написал:

Если бы об этом кто-то знал, то может быть и пользовались бы.

Об этом вроде как в документации (описании URQL для URQ_DOS от Корвина) написано. Страница 21, "Строковые переменные и работа с ними".

Неактивен

3    0    #5
18.09.2015 00:12

uux
Участник (+836, -80)
Откуда: Москва
Зарегистрирован: 02.12.2006
Сообщений: 1584

Re: Вопросы по URQ

Ajenta написал:

Ну и кстати кто в курсе, что в фурке это рабоотает, опять же. smile

Ну, вообще фурка изначально ориентирована была на то, чтобы по максимуму перенять стандарт досурки, поэтому по умолчанию можно считать, что если какой-то функционал есть в URQ_DOS, в FireURQ он тоже есть. (Тон, поправь меня, если что). Исключения, наверно, по пальцам одной руки пересчитать можно, причем бОльшая их часть описана в фурк-документации. Я навскидку из неподдерживаемых фич досурки могу вспомнить разве что чуть иную логику работы с инвентарем (вследствие чего иногда "размножаются" кнопки, а некоторые популярные авторы отказываются писАть на фурке). Да, еще DOS-кодировка не поддерживается, поэтому эпический квест про Евга, универ и спасательный круг на фурке без перекодировки не доступен.

Прости меня, Аджента, за длинный и занудный пост:).

Неактивен

1    0    #6
21.10.2015 21:33

uux
Участник (+836, -80)
Откуда: Москва
Зарегистрирован: 02.12.2006
Сообщений: 1584

Re: Вопросы по URQ

Александр Морт написал:

invkill

Да, invkill удаляет весь инвентарь. Есть еще perkill - сбрасывает все переменные.

Полный рестарт делается так: вначале квеста ставится метка, сразу после которой прописываются invkill и perkill. Когда нужен рестарт, просто каким-то образом осуществляется переход на эту метку (через btn, goto...)

Неактивен

Powered by PunBB
© copyright 2001–2022 iFiction.Ru