Просьба в этой теме обсуждать только вопросы и предложения по теме.
Неактивен
Может быть ввести дополнительно макрос <<return>>? По нему переменные не будут восстанавливать свои значения, а по макросу <<back>> - будут.
Неактивен
DoubleDragon написал:
Может быть ввести дополнительно макрос <<return>>? По нему переменные не будут восстанавливать свои значения, а по макросу <<back>> - будут.
Как вариант
А как именно оно будет работать?
Отредактировано Вета (09.07.2012 11:35)
Неактивен
Как раньше back работал, т.е. просто ссылка на предыдущий параграф, изменённые переменные при этом сохранят свои значения, а не вернут предыдущие.
Неактивен
DoubleDragon написал:
Как раньше back работал, т.е. просто ссылка на предыдущий параграф, изменённые переменные при этом сохранят свои значения, а не вернут предыдущие.
Вопрос на засыпку. Если я захожу в инвентарь через меню делаю там махинаци с предметами с изменением переменных. Я делаю макрос бэк. Нажимаю на него, вертаюсь в текущую локацию. У меня переменные, которые я изменила в инвентаре на каком уровне будут?
Неактивен
Сейчас все изменения потеряются. А если сделать макрос <<return>>, то по нему изменения будут сохраняться.
Неактивен
DoubleDragon написал:
Сейчас все изменения потеряются. А если сделать макрос <<return>>, то по нему изменения будут сохраняться.
Хм. Тогда return нужен, да.
Еще такой момент. Надо все-таки как-то это зацикливание карта-инвентарь-карта убрать. То есть сделать так, чтобы бэк/return возвращал на ТЕКУЩУЮ локацию, а не в очередной пункт меню. Вдруг у меня их 10, я их нажму по очереди и зависну в этих дебрях, пока вернусь на текущую локацию.
Неактивен
Согласен, думаю как это сделать.
Неактивен
DoubleDragon написал:
Согласен, думаю как это сделать.
Думкай-думкай
Буду очень ждать этих изменений, как только они появятся, начну писать серьезную игру. Да и КРИЛ не за горами.
Неактивен
Вета написал:
... зацикливание карта-инвентарь-карта убрать.
Может добавить макрос, скрывающий меню в данном параграфе? ![]()
Читатель нажимает "Карта" и переходит в параграф с картой, из которого меню недоступно. Нажать теперь "Инвентарь" он не может, ему остается только нажать "Назад". И зацикливания не будет. Да и сохраниться в инвентаре он не сможет.
Неактивен
Ай повторюсь.
Уважаемый DoubleDragon.
Хотелось бы видеть в следующей версии
верхнюю стрелочку назад = "откат" с восстановлением переменных.
Команду <<back>> = "возврат" на параграф назад, с уже пересчитанным значением переменных, и на бэк не запрещать вернутся по choise, автор сам решит как ему пользоваться этим инструментом.
Согласны со мной, господа писатели?
Morych
Кстати, весьма изящное решение.
Отредактировано Ergistal (11.07.2012 04:17)
Неактивен
Хотелось бы видеть в следующей версии
верхнюю стрелочку назад = "откат" с восстановлением переменных.
Команду <<back>> = "возврат" на параграф назад, с уже пересчитанным значением переменных, и на бэк не запрещать вернутся по choise, автор сам решит как ему пользоваться этим инструментом.
Согласен со всем, кроме того, чтобы не запрещать по back возвращаться с невозвратного перехода.
Имхо, это ломает логику. И я добавлю макрос <<return>>, про который я писал уже.
Неактивен
Завтра будет новая версия. Там в плюс будет что-то сладкое ![]()
Неактивен
Выложил версию 0.7. Подробности в этой теме: https://forum.ifiction.ru/viewtopic.php?pid=24278
Неактивен
При возврате (кнопкой и макросами) на параграф Start не отображаются автор, название и описание, а только содержимое самого параграфа. Если так и задумано, не будет ли это сбивать с толку?
Неактивен
В принципе, так задумано, иначе параграф Start стал бы чем-то иным. Насчёт сбивает или нет - пока не знаю, т.к. нужны ещё отзывы по этому вопросу.
Неактивен
Еще один вопрос про кнопку "Назад". Читатель возвращается по кнопке на предыдущий параграф. Если в этом параграфе используется рандом (генерируется описание, или в зависимости от случайного значения появляется/исчезает переход) то читатель скорее всего увидит не то же самое, что видел до этого. Что делать? Смириться? ))
Неактивен
Условие сделайте. Типа такого:
<<if !($var)>>
<<random $var=5>>
<<endif>>
И возвращайтесь в этот параграф макросом return.
Правда я сейчас на даче и проверить это не могу ![]()
Неактивен
Спасибо! Попробую так сделать.
Про макрос return я помню, но меня больше беспокоит
именно кнопка "Назад", которая в левом верхнем углу, она ведь эквивалентна макросу back?
Неактивен
Да, она работает как back.
Можно сдлать невозвратную ссылку, тогда кнопка будет заблокирована.
А в параграф переходить не по return, а просто по ссылке.
Неактивен
Снова про Бэк.
Собственно, пример:
:: Start <<set $i = 0>> [[Location 1]] :: Location 1 i = <<print $i>> <<set $i = 1>> [[Location 2]] :: Location 2 I want back! <<back>>
Первоначально на "Локации 1" я вижу, что "i = 0". Иду на "Локацию 2", на которой внезапно нажимаю кнопку "Назад". Ожидаю увидеть то же самое, но вижу "i = 1". На месте игрока я бы запаниковал.
Неактивен
Почему? Всё правильно обрабатывается.
Переменые же запоминаются по состоянию на конец локации.
Вы поменяйте местами в Location 1 i = <<print $i>> и <<set $i = 1>>
Получается, что Вы выводите игроку заведомо устаревшее значение.
"Назад" защищает игрока от изменений значений в следующем параграфе.
Тут уже дело автора, как не запутать читателя.
Неактивен
Есть ещё один момент. При возвращении на локацию, на ней заново выполняются все макросы. Например, такие:
<<set $gold = $gold - 5>>
Получается, что "Назад" не защищает игрока от повторных изменений переменных в текущем параграфе.
Может запоминать переменные по состоянию на начало локации? После повторного выполнения макросов (кроме рандома), они станут такими же, как были до возвращения. Кроме того, в этом случае игрок гарантированно увидит то же описание локации (даже в случае вывода устаревших значений, как в моём предыдущем примере).
Либо авторам просто стоит всегда учитывать эту особенность и проверять игру на back-устойчивость, или по-чаще пользоваться невозвратными ссылками. ![]()
Неактивен
Спасибо, подумаю.
Неактивен
Может запоминать переменные по состоянию на начало локации? После повторного выполнения макросов (кроме рандома), они станут такими же, как были до возвращения. Кроме того, в этом случае игрок гарантированно увидит то же описание локации (даже в случае вывода устаревших значений, как в моём предыдущем примере).
Да, это была ошибка, я её исправил. Завтра выложу версию с большим обновлением ASM.
Неактивен
Доступна версия 1.2. Подробно см. здесь: https://forum.ifiction.ru/viewtopic.php … 017#p25017
Неактивен
Morych написал:
Снова про Бэк.
Собственно, пример:
Код:
:: Start <<set $i = 0>> [[Location 1]] :: Location 1 i = <<print $i>> <<set $i = 1>> [[Location 2]] :: Location 2 I want back! <<back>>Первоначально на "Локации 1" я вижу, что "i = 0". Иду на "Локацию 2", на которой внезапно нажимаю кнопку "Назад". Ожидаю увидеть то же самое, но вижу "i = 1". На месте игрока я бы запаниковал.
Если добавить макросы <<back>> и <<return>> в параграф Location 1, то получается, что при возврате с Location 1 на Start любым из макросов $i = 0 при любом возврате, хотя я думал, исходя из описания, что при возврате с помощью <<return>> $i должно равняться 1? так как сохраняется новое значение переменной?
Почему не так? Или я что-то не так понял из описания макросов. Спасибо.
:: Start
<<set $i = 0>>
i = <<print $i>>
[[Location 1]]
:: Location 1
<<set $i = 1>>
i = <<print $i>>
<<back>>
<<return>>
Неактивен
В параграфе Start переменной $i присваивается значение 0. Поэтому на долю секунды значение $i после return равняется 1, и сразу меняется на 0.
Неактивен
DoubleDragon написал:
В параграфе Start переменной $i присваивается значение 0. Поэтому на долю секунды значение $i после return равняется 1, и сразу меняется на 0.
Прошу прощения, уже разобрался, я же принудительно присваиваю $i = 0, каждый раз при возврате на Start.
Нужен лишний шаг, чтобы увидеть разницу в макросах:
:: Start
<<set $i = 0>>
i = <<print $i>>
[[Location 1]]
:: Location 1
i = <<print $i>>
[[Location 2]]
:: Location 2
<<set $i = 1>>
i = <<print $i>>
<<back>>
<<return>>
Спасибо.
Неактивен
Да, теперь всё верно ![]()
Удачи!
Неактивен