Forum.iFiction.Ru

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

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

Вы не зашли.

   #26
21.08.2012 08:13

Вета
Участник (+185, -29)
Зарегистрирован: 05.08.2010
Сообщений: 352
Вебсайт

Мой блог: http://veta.ifiction.ru/

Re: Как сделать что-то или "я вот не понимаю"

sosiskin написал:

Вета написал:

вторая ссылка не становится видимой, хотя условие выполняется.

но стоп, условие же находится внутри цикла if-then-endif, как же оно выполнится, если условие для его выполнения не выполнено?

Почему не выполнено? Я нажимаю на первую ссылку, там у меня смена значения объекта (пролог=1) и условие становится выполненным. А вторая ссылка все равно не появляется.

Неактивен

   #27
21.08.2012 08:32

DoubleDragon
Модератор (+343, -21)
Откуда: Москва
Зарегистрирован: 07.04.2012
Сообщений: 1691
Вебсайт

Разработчик "AXMA Story Maker"

Re: Как сделать что-то или "я вот не понимаю"

Не выполнено, потому что при нажатии на первую ссылку, вы передаёте управлению параграфу, на который ведёт ссылка. В данном случае на параграф "о_заводе".

Неактивен

   #28
21.08.2012 09:07

Вета
Участник (+185, -29)
Зарегистрирован: 05.08.2010
Сообщений: 352
Вебсайт

Мой блог: http://veta.ifiction.ru/

Re: Как сделать что-то или "я вот не понимаю"

DoubleDragon написал:

Не выполнено, потому что при нажатии на первую ссылку, вы передаёте управлению параграфу, на который ведёт ссылка. В данном случае на параграф "о_заводе".

А как сделать, чтобы выполняло тогда? В параграфе "о_заводе" нужно менять значение переменной?

Неактивен

   #29
21.08.2012 10:46

Ajenta
Участник (+447, -147)
Зарегистрирован: 03.05.2009
Сообщений: 575
Вебсайт

Re: Как сделать что-то или "я вот не понимаю"

Вета написал:

DoubleDragon написал:

Не выполнено, потому что при нажатии на первую ссылку, вы передаёте управлению параграфу, на который ведёт ссылка. В данном случае на параграф "о_заводе".

А как сделать, чтобы выполняло тогда? В параграфе "о_заводе" нужно менять значение переменной?

А параграф с кодом как называется "о_заводе"? Или это другой параграф?

Неактивен

   #30
21.08.2012 12:16

Вета
Участник (+185, -29)
Зарегистрирован: 05.08.2010
Сообщений: 352
Вебсайт

Мой блог: http://veta.ifiction.ru/

Re: Как сделать что-то или "я вот не понимаю"

Это другой.

Неактивен

   #31
21.08.2012 13:32

Morych
Модератор (+52, -6)
Откуда: Гродно
Зарегистрирован: 05.07.2012
Сообщений: 517
Вебсайт

Re: Как сделать что-то или "я вот не понимаю"

Вета написал:

А как сделать, чтобы выполняло тогда? В параграфе "о_заводе" нужно менять значение переменной?

Даже если поменять значение переменной в параграфе "о_заводе", результат будет тем же. А все потому, что описание завода добавляется к текущему параграфу, который был сформирован при старом значении переменной, и с тех пор не обновлялся.

Как вариант, можно вместе с частью описания завода выводить и дополнительную ссылку на продолжение описания:

Код:

параграф "о_заводе"
<<if $пролог eq 1>>
Это большой завод.
[[+Хочу знать больше|о_заводе {$пролог = 2}]]
<<elseif $пролог eq 2>>
У него есть высокая труба.
[[+Хочу знать больше|о_заводе {$пролог = 3}]]
<<elseif $пролог eq 3>>
Верх трубы теряется в облаках... или это дым?
<<endif>>

Не проверял, но по идее должно работать.

Неактивен

   #32
21.08.2012 15:46

Ajenta
Участник (+447, -147)
Зарегистрирован: 03.05.2009
Сообщений: 575
Вебсайт

Re: Как сделать что-то или "я вот не понимаю"

Вета написал:

Это другой.

Я бы просто перенесла действие с условием в локу о_заводе

Неактивен

   #33
21.08.2012 22:57

sosiskin
Участник (+8, -9)
Зарегистрирован: 02.02.2012
Сообщений: 144

Re: Как сделать что-то или "я вот не понимаю"

а кстати, циклы внутри циклов поддерживаются?
ну, в смысле, можно писать внутри одного <<if>> <<endif>> другие такие же циклы?

Неактивен

   #34
21.08.2012 23:23

Flash
Участник (+10, -9)
Зарегистрирован: 12.05.2012
Сообщений: 203
Вебсайт

Re: Как сделать что-то или "я вот не понимаю"

Это не циклы, а так да.

Неактивен

   #35
26.08.2012 16:55

vinurd
Участник
Зарегистрирован: 25.08.2012
Сообщений: 19

Re: Как сделать что-то или "я вот не понимаю"

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

Неактивен

   #36
26.08.2012 17:36

Morych
Модератор (+52, -6)
Откуда: Гродно
Зарегистрирован: 05.07.2012
Сообщений: 517
Вебсайт

Re: Как сделать что-то или "я вот не понимаю"

Простейший пример:

Код:

###параграф "Комната 1"###
Вы видите дверь.
<<if $ключ>>
Дверь заперта, но, к счастью, у Вас есть ключ.
[[Открыть дверь|Комната 2]]
<<else>>
Похоже, без ключа эту дверь не откроешь.
[[Глянуть под ковриком|Коврик]]
<<endif>>

###параграф "Коврик"###
Под ковриком Вы нашли ключ.
<<set $ключ = 1>>
[[Вернуть коврик на место|Комната 1]]

Отредактировано Morych (26.08.2012 17:43)

Неактивен

   #37
26.08.2012 19:08

vinurd
Участник
Зарегистрирован: 25.08.2012
Сообщений: 19

Re: Как сделать что-то или "я вот не понимаю"

хм у меня при входе  в комнату1  все белое ни текста ни чего

Неактивен

   #38
26.08.2012 19:14

vinurd
Участник
Зарегистрирован: 25.08.2012
Сообщений: 19

Re: Как сделать что-то или "я вот не понимаю"

аа все огромное спасибо. ендиф не поставил.

Неактивен

   #39
27.08.2012 05:05

vinurd
Участник
Зарегистрирован: 25.08.2012
Сообщений: 19

Re: Как сделать что-то или "я вот не понимаю"

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

Неактивен

   #40
27.08.2012 10:29

Morych
Модератор (+52, -6)
Откуда: Гродно
Зарегистрирован: 05.07.2012
Сообщений: 517
Вебсайт

Re: Как сделать что-то или "я вот не понимаю"

Я делаю инвентарь примерно так. Есть специальный параграф "StoryMenu", там делаем ссылку с плюсом на параграф "Инвентарь", в котором выводим перечень предметов. Каждый предмет - тоже ссылка с плюсом, которая ведет на параграф описания предмета, а также доступных действий с этим предметом.

Код:

:: StoryMenu
[[+Инвентарь]]

:: Инвентарь
<<set $n = 0>>
У Вас в кармане: <<if $кирка>><<set $n++>>[[+кирка]]<<endif>><<if $топор>><<if $n gt 0>>, <<endif>><<set $n++>>[[+топор]]<<endif>><<if $золото gt 0>><<if $n gt 0>>, <<endif>><<set $n++>>[[+золотые монеты]] (<<print $золото>> шт.)<<endif>><<if $n eq 0>>ничего нет<<endif>>.

:: кирка
Старая ржавая кирка.
[[+Чистить кирку]]
<<if $трещина and !($стена_сломана)>>
[[Долбить стену с трещиной|Стена с трещиной {$стена_сломана = 1}]]
<<endif>>

:: Стена с трещиной
Вы в заброшенной штольне.
<<if $стена_сломана>>
В сырой стене теперь есть проход.
[[Лезть в проход {$трещина = 0}]]
<<else>>
<<set $трещина = 1>>
В глаза бросается трещина в сырой стене.
<<endif>>
[[Уйти|Выход из пещеры {$трещина = 0}]]

Вот и всё, пробуйте. Осталось только на какой-нибудь локации найти кирку, т.е. присвоить $кирка = 1. В инвентаре можно заметить переменную $n. Она считает имеющиеся предметы, чтобы дописывать запятые, если предметов больше 1 и вставить надпись "ничего нет", если число предметов = 0. А насчёт разных хитростей в игре, то, я думаю, профи их выложат, но после конкурса. wink

Неактивен

   #41
27.08.2012 11:17

vinurd
Участник
Зарегистрирован: 25.08.2012
Сообщений: 19

Re: Как сделать что-то или "я вот не понимаю"

офигеть, спасибо, буду разбираться.

Неактивен

   #42
27.08.2012 11:40

vinurd
Участник
Зарегистрирован: 25.08.2012
Сообщений: 19

Re: Как сделать что-то или "я вот не понимаю"

хм все сделал чет в кармане все пусто.

Неактивен

   #43
27.08.2012 11:52

vinurd
Участник
Зарегистрирован: 25.08.2012
Сообщений: 19

Re: Как сделать что-то или "я вот не понимаю"

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

Неактивен

   #44
27.08.2012 12:24

Morych
Модератор (+52, -6)
Откуда: Гродно
Зарегистрирован: 05.07.2012
Сообщений: 517
Вебсайт

Re: Как сделать что-то или "я вот не понимаю"

Пожалуйста. На самом деле все просто. Для каждой вещи в инвентаре добавляйте блок:

<<if $предмет gt 0>><<if $n gt 0>>, <<endif>><<set $n++>>[[+предмет]] (<<print $предмет>> шт.)<<endif>>

Это в общем случае, если экземпляров данного предмета может быть несколько. Т.о. переменная $предмет хранит количество.
Если немного поработать, можно описание инвентаря сделать более литературным. Например, если разных предметов у ГГ больше одного, то перед последним предметом вместо запятой можно поставить "и". Подскажу, что для этого сначала нужно посчитать количество разных предметов.

Кстати, повторяющиеся куски кода:

<<if $n gt 0>>, <<endif>><<set $n++>>

можно (и нужно) поместить в специальный параграф, назовем его, "Инв", который потом вызывать макросом <<display 'Инв'>> :

<<if $предмет gt 0>><<display 'Инв'>>[[+предмет]] (<<print $предмет>> шт.)<<endif>>

Отредактировано Morych (27.08.2012 13:19)

Неактивен

   #45
27.08.2012 13:15

sosiskin
Участник (+8, -9)
Зарегистрирован: 02.02.2012
Сообщений: 144

Re: Как сделать что-то или "я вот не понимаю"

<<set $n++>> - это что, инкремент переменной на единицу? я о двух плюсиках нигде в хелпе не встречал упоминаний.

Неактивен

   #46
27.08.2012 13:24

Morych
Модератор (+52, -6)
Откуда: Гродно
Зарегистрирован: 05.07.2012
Сообщений: 517
Вебсайт

Re: Как сделать что-то или "я вот не понимаю"

sosiskin написал:

<<set $n++>> - это что, инкремент переменной на единицу? я о двух плюсиках нигде в хелпе не встречал упоминаний.

Совершенно верно. Эквивалентно <<set $n = $n + 1>>

Еще есть инкремент на произвольную величину: <<set $n+=5>>

Теоретически должен работать синтаксис JavaScript. Нужно спросить у DoubleDragon.

Неактивен

   #47
27.08.2012 13:31

DoubleDragon
Модератор (+343, -21)
Откуда: Москва
Зарегистрирован: 07.04.2012
Сообщений: 1691
Вебсайт

Разработчик "AXMA Story Maker"

Re: Как сделать что-то или "я вот не понимаю"

Работает. Кроме $n--.

Неактивен

   #48
28.08.2012 03:06

vinurd
Участник
Зарегистрирован: 25.08.2012
Сообщений: 19

Re: Как сделать что-то или "я вот не понимаю"

Morych написал:

Пожалуйста. На самом деле все просто. Для каждой вещи в инвентаре добавляйте блок:

<<if $предмет gt 0>><<if $n gt 0>>, <<endif>><<set $n++>>[[+предмет]] (<<print $предмет>> шт.)<<endif>>

Это в общем случае, если экземпляров данного предмета может быть несколько. Т.о. переменная $предмет хранит количество.
Если немного поработать, можно описание инвентаря сделать более литературным. Например, если разных предметов у ГГ больше одного, то перед последним предметом вместо запятой можно поставить "и". Подскажу, что для этого сначала нужно посчитать количество разных предметов.

Кстати, повторяющиеся куски кода:

<<if $n gt 0>>, <<endif>><<set $n++>>

можно (и нужно) поместить в специальный параграф, назовем его, "Инв", который потом вызывать макросом <<display 'Инв'>> :

<<if $предмет gt 0>><<display 'Инв'>>[[+предмет]] (<<print $предмет>> шт.)<<endif>>

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

Отредактировано vinurd (28.08.2012 03:09)

Неактивен

   #49
28.08.2012 10:12

Morych
Модератор (+52, -6)
Откуда: Гродно
Зарегистрирован: 05.07.2012
Сообщений: 517
Вебсайт

Re: Как сделать что-то или "я вот не понимаю"

vinurd написал:

вот такой бы блок для вещей сделать в макросы и было удобно если бы пользователь мог вносить в макросы свои блоки.

Это, скорее, сниппеты нежели макросы. Написал про них в тему предложений.

Неактивен

   #50
01.10.2012 13:21

Вета
Участник (+185, -29)
Зарегистрирован: 05.08.2010
Сообщений: 352
Вебсайт

Мой блог: http://veta.ifiction.ru/

Re: Как сделать что-то или "я вот не понимаю"

Подскажите, как сделать такую вещь, чтобы при вставке текста из другой локации, он бы не переносился на новую строку.

Пример:

#1

Стрелка указывает на <<display '2'>>

-------------------------------------------------------
Если есть несколько условий в параграфе 2, текст из параграфа 2 переносится почему-то в параграфе 1 на новую строку. А мне нужно чтобы он продолжал текст.

Неактивен

Powered by PunBB
© copyright 2001–2017 iFiction.Ru