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, но это как-то ... вроде должно быть что-то такое встроенное?

Неактивен

1    0    #2
14.09.2015 14:00

Евг
Участник (+256, -37)
Зарегистрирован: 13.04.2007
Сообщений: 539
Вебсайт

Neyðin kennir naktri konu að spinna.

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

DarkDes написал:

Появилось пару вопросов-проблем относительно URQ.

Можно ли составлять конструкции вот такого вида?

Код:

if <> then A1
else
if <> then A2
else
if <> then A3
else
A4

Пробую написать такое, но условия срабатывают как-то неверно.

Можно. Просто пиши все подряд if A then B else if C then D и т.д. Можно использовать переносы строк для наглядности, но ты это умеешь. Подводный камень был в том, чтобы понять какой else относится к какому ifу, но это легко понять  один раз  сильно протестив подобную конструкцию в фурке.

DarkDes написал:

И ещё по поводу меню. Нужно каждый раз делать метки вроде такого:

Код:

:mark1
btn mark1_1, Abc
btn mark1_2, Def 
end
:mark1_1
...
end
:mark1_2
...
end

Можно ли как-то сократить такую конструкцию? Т.е. чтобы логика нажатия кнопок оставалась в рамках одного mark1 ?

Для такого нужно использовать кнопку с параметром (работает только в фурке).
Могу путаться в синтаксисе, глянь на вики как правильно их использовать, но идея такая:

Код:

:0
btn mark(1), Abc ; по нажатию кнопки передаем в первую переменную локации mark единичку
btn mark(2), Abc ; по нажатию кнопки передаем туда же двойку
end

:mark
if mark_1=1 then pln Нажата первая кнопка
if mark_1=2 then pln Нажата вторая кнопка
end

DarkDes написал:

И похоже нет возможности вызвать proc в меню? Хотел вывод сообщений сделать при нажатии на кнопку, но мне дебаг говорит, что нельзя.

По-моему ты говоришь про т.н. "локальные действия", тоже есть в документации на вики. Но вообще, первый раз слышу, что кто-то использует меню в реальной игре smile Удачи!

DarkDes написал:

Вот конкретный код:

Код:

    if (InputCode == #%proc_EnterCode_1$ )

Ты здесь сравниваешь значение переменной InputCode со значением другой переменной, имя которой - значение переменной proc_EnterCode_1. Т.е., если proc_EnterCode_1="z" урка понимает твое выражение как if (InputCode == z), а чему там равно значение этого z никто не знает, скорее всего "".

Если нужно сравнить значение InputCode с текстовым значением proc_EnterCode_1, то лучше ставить кавычки.

Код:

if (InputCode == "#%proc_EnterCode_1$" )

Отредактировано Евг (14.09.2015 14:05)

Неактивен

3    0    #3
15.09.2015 13:05

Евг
Участник (+256, -37)
Зарегистрирован: 13.04.2007
Сообщений: 539
Вебсайт

Neyðin kennir naktri konu að spinna.

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

== появилось во времена досурки, когда Корянов решил сделать сравнение строк по маске smile
Если = просто сравнивало переменные по "совпадает одно с другим или нет", то == позволяло писать конструкции вида if str == "взять *" then ... или if date == "??.01.2015" then ... Таким образом не надо было бить строки на буквы и перебирать каждую в цикле. Но этим, кажется почти никто не пользуется smile

Отредактировано Евг (15.09.2015 13:06)

Неактивен

1    0    #4
15.09.2015 15:24

Евг
Участник (+256, -37)
Зарегистрирован: 13.04.2007
Сообщений: 539
Вебсайт

Neyðin kennir naktri konu að spinna.

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

Ну да, проверь:

Код:

:0
z = "взять лук"

if z == "взять *" then p Я взяла & if z == "* лук" then p лук и заплакала. else p что-то непонятное и теперь не знаю, что с этим делать. else p Ничего я не взяла.
end

Неактивен

0    0    #5
23.10.2015 19:09

Евг
Участник (+256, -37)
Зарегистрирован: 13.04.2007
Сообщений: 539
Вебсайт

Neyðin kennir naktri konu að spinna.

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

Сходу и не сообразишь.
В досурке была переменная time, которая хранила количество секунд (или мс) прошедших с полуночи. Мне тут подсказали, что и в фурке такое есть, так что можно это использовать.
До входа в фазу боя запоминай, что было в time, после клика опять проверяй, что настучало в time, считай там разницу и ставь соответствующую паузу на количество секунд, которое необходимо до конца фазы.

Или паузу в цикле, пока не настучит нужная разница time_now-time_old.

Правда в досурке в полночь переменная time сбрасывалась smile Так что если играть ночью можно было попасть в неприятную ситуацию. Нужно этот момент отлавливать.

Отредактировано Евг (23.10.2015 19:15)

Неактивен

Powered by PunBB
© copyright 2001–2022 iFiction.Ru