Просьба в этой теме обсуждать только вопросы и предложения по теме.
Неактивен
Может быть ввести дополнительно макрос <<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>>
Спасибо.
Неактивен
Да, теперь всё верно
Удачи!
Неактивен