Forum.iFiction.Ru

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

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

Вы не зашли.

0    0    #376
10.01.2014 18:45

Pa-va
Участник
Зарегистрирован: 10.01.2014
Сообщений: 2

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

Всем привет. Разрешите несколько вопросов от новичка (пока разбираюсь с программированием):
1. Разъясните пожалуйста на примере полезности и необходимость использования массивов.
2. Где-то в блоге (не помню где) обмолвились о недокументированных многомерных массивах, больше ни где этого не видел. Есть ли такое, можно ли это использовать, если да, то где?
3. Можно ли сохранить рассказ, т.е. нельзя ли вывести линейный рассказ, полученный во время прочтения пользователем, т.е. прочитать то, что получилось от начала до конца во время чтения?
4. Можно ли, и если да, то как протестировать выполняются ли все участки кода (т.е. есть ли теоретическая возможность того, что все параграфы будут воспроизведены или наоборот есть пути с тупиками)? Подобный тест был бы полезен в виду появления в программе динамических ссылок.

Неактивен

0    0    #377
10.01.2014 19:38

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

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

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

Отвечаю smile
1. Не используйте массивы, пока не почувствуете необходимость в них.
2. Такого нет и не планируется.
3. Такого пока нет.
4. Не представляю, как сделать это smile

Неактивен

0    0    #378
10.01.2014 23:51

Pa-va
Участник
Зарегистрирован: 10.01.2014
Сообщений: 2

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

Спасибо за ответ)

Неактивен

0    0    #379
17.01.2014 08:46

romz
Участник
Зарегистрирован: 10.10.2013
Сообщений: 4

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

полистал справочник, но так и не понял - можно ли сделать так, чтобы картинка была ссылкой на параграф или url? покажите как сделать, если реально?

Неактивен

1    0    #380
17.01.2014 08:51

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

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

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

Нет, пока так сделать нельзя. В планах.

Неактивен

0    0    #381
17.01.2014 11:43

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

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

А почему же у меня тогда это работает?

Неактивен

0    0    #382
17.01.2014 12:04

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

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

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

Flash написал:

А почему же у меня тогда это работает?

А как? Пример в студию smile

Неактивен

0    0    #383
17.01.2014 13:08

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

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

[[[[File: i/7x40.png]]|ванная]]
Где "i/7x40.png" - путь до картинки, а "ванная" - параграф. Еще до релиза версии 1.0 работало.

Неактивен

0    0    #384
17.01.2014 13:32

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

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

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

Ого, а я не знал smile
Морыч, я сделал это wink

Неактивен

0    0    #385
17.01.2014 14:19

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

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

Прикольно smile Может ты ещё что-нибудь сделал из ToDo незаметно для себя, а никто кроме Flash'а и не знает? smile

Неактивен

0    0    #386
17.01.2014 14:22

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

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

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

Очень может быть smile Flash, спасибо!

Неактивен

0    0    #387
31.01.2014 22:27

Delakha
Участник
Зарегистрирован: 31.01.2014
Сообщений: 6

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

Помогите с кодом:

Условие: есть три навыка (Навык Тяжелого оружия ближнего боя, Легкого оружия ближнего боя и Оружия дальнего боя). Есть один дар и два таланта, которым можно придать значение навыка. Дар и талант не могут быть обозначены одним навыком, как и два таланта. Если обозначить навык как дар, то возможность выбрать как талант исчезнет. Однако если выбрать даром другой навык, то возможность опять появится. С талантами то же самое. Если выбрать один для навыка, возможность выбрать этот навык вторым талантом должна исчезнуть.

Я разобралась с даром, однако проблема с талантами. Как сделать так, чтобы выбрав один, исчезала возможность выбрать второй и дар? (если выбрать сначала дар, возможность выбрать талант все таки исчезала.... раньше)

Параграф  "анкета8":

Код:

[[Тяжёлое оружие ближнего боя|анкета9 {$0001=1}]]

[[Лёгкое оружие ближнего боя|анкета9 {$0001=2}]]

[[Оружие дальнего боя|анкета9 {$0001=3}]]

(Не буквеннык объекты, так как нажимая на ссылки сверху, играющий лишь попадает на страницу с описанием навыка, а не выбирает его)

Параграф "анкета9":

Код:

<<if $0001 eq 1>>
Описание навыка "Тяжелое оружие".
<<if !$дар >>[[Выбрать как дар|анкета9{$дар = 'тяжелое оружие'}]]<<elseif $дар neq 'тяжелое оружие'>>[[Выбрать этот дар вместо прежнего|анкета9{$дар = 'тяжелое оружие'}]]<<endif>>
<<if $дар neq 'тяжелое оружие' and (!$талант1 or $талант1 neq 'тяжелое оружие')>>[[Выбрать как талант|анкета9 {$талант1 eq 'тяжелое оружие'}]]
<<elseif $дар neq 'тяжелое оружие' and (!$талант2 or $талант2 neq 'тяжелое оружие' and $талант1>>[[Выбрать как талант|анкета9 {$талант2 eq 'тяжелое оружие'}]]
<<endif>>

<<elseif $0001 eq 2>>
Описание навыка "Легкое оружие".
<<if !$дар>>[[Выбрать как дар|анкета9{$дар = 'легкое оружие'}]]<<elseif $дар neq 'легкое оружие'>>[[Выбрать этот дар вместо прежнего|анкета9{$дар = 'легкое оружие'}]]<<endif>>
<<if $дар neq 'легкое оружие' and (!$талант1 or $талант1 neq 'легкое оружие')>>[[Выбрать как талант|анкета9 {$талант1 eq 'легкое оружие'}]]
<<elseif $дар neq 'легкое оружие' and (!$талант2 or $талант2 neq 'легкое оружие' and $талант1>>[[Выбрать как талант|анкета9 {$талант2 eq 'легкое оружие'}]]
<<endif>>

<<elseif $0001 eq 3>>
Описание навыка "Дальнее оружие".
<<if !$дар>>[[Выбрать как дар|анкета9{$дар = 'дальнее оружие'}]]<<elseif $дар neq 'дальнее оружие'>>[[Выбрать этот дар вместо прежнего|анкета9{$дар = 'дальнее оружие'}]]<<endif>>
<<endif>>
<<if $дар neq 'дальнее оружие' and (!$талант1 or $талант1 neq 'дальнее оружие')>>[[Выбрать как талант|анкета9 {$талант1 eq 'дальнее оружие'}]]
<<elseif $дар neq 'дальнее оружие' and (!$талант2 or $талант2 neq 'дальнее оружие' and $талант1>>[[Выбрать как талант|анкета9 {$талант2 eq 'дальнее оружие'}]]
<<endif>>
----
[[Вернуться|анкета8]]

Без добавления условного оператора с $талант1 и $талант2, объект $дар работает как нужно, однако при нынешнем коде вообще ничего не отображается. Почему?

Неактивен

0    0    #388
01.02.2014 02:14

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

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

Delakha написал:

Условие: есть три навыка (Навык Тяжелого оружия ближнего боя, Легкого оружия ближнего боя и Оружия дальнего боя). Есть один дар и два таланта, которым можно придать значение навыка. Дар и талант не могут быть обозначены одним навыком, как и два таланта. Если обозначить навык как дар, то возможность выбрать как талант исчезнет. Однако если выбрать даром другой навык, то возможность опять появится. С талантами то же самое. Если выбрать один для навыка, возможность выбрать этот навык вторым талантом должна исчезнуть.

Я тут покрутил немного, и получилось вот что:

Код:

:: Start
<<display 'Объекты'>>
[[Навыки]]


:: Объекты
<<set $навык = "">>
<<set $нет = "нет">>
<<set $дар = $нет>>
<<set $талант1 = $нет>>
<<set $талант2 = $нет>>
<<set $выбрано = 0>>


:: Навыки
<<if ($выбрано neq 1) and ($дар eq $навык)>>
    <<set $дар = $нет>>
<<endif>>
<<if ($выбрано neq 2) and ($талант1 eq $навык)>>
    <<set $талант1 = $нет>>
<<endif>>
<<if ($выбрано neq 3) and ($талант2 eq $навык)>>
    <<set $талант2 = $нет>>
<<endif>>
Дар: <<print $дар>>
Талант первый: <<print $талант1>>
Талант второй: <<print $талант2>>
[[Тяжёлое оружие ближнего боя|ОписаниеНавыков {$навык = "тяжёлое оружие"}]]
[[Лёгкое оружие ближнего боя|ОписаниеНавыков {$навык = "лёгкое оружие"}]]
[[Оружие дальнего боя|ОписаниеНавыков {$навык = "дальнее оружие"}]]


:: ОписаниеНавыков
<<if $навык eq "тяжёлое оружие">>
    Описание навыка «Тяжёлое оружие».
<<elseif $навык eq "лёгкое оружие">>
    Описание навыка «Лёгкое оружие».
<<else>>
    Описание навыка «Дальнее оружие».
<<endif>>
<<if $навык neq $дар>>
    [[Выбрать как дар|Навыки {$дар = $навык} {$выбрано = 1}]]
<<endif>>
<<if ($навык neq $талант1) and ($навык neq $талант2)>>
    <<if ($талант1 eq $нет) or ($талант2 neq $нет)>>
        [[Выбрать как талант|Навыки {$талант1 = $навык} {$выбрано = 2}]]
    <<else>>
        [[Выбрать как талант|Навыки {$талант2 = $навык} {$выбрано = 3}]]
    <<endif>>
<<endif>>
[[Назад|Навыки {$навык = ""}]]

Посмотрите, правильно ли работает.

У вас, я заметил, отсутствует закрывающая скобка в таких условиях:
<<elseif $дар neq 'тяжелое оружие' and (!$талант2 or $талант2 neq 'тяжелое оружие' and $талант1>>

Неактивен

0    0    #389
01.02.2014 12:26

Delakha
Участник
Зарегистрирован: 31.01.2014
Сообщений: 6

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

Огромное спасибо!! Работает идеально. За замечание отдельное спасибо — учту на будущее быть внимательнее.

Неактивен

0    0    #390
03.02.2014 14:03

kalembet
Участник
Зарегистрирован: 03.02.2014
Сообщений: 2

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

Начал изучать ASM и в третьем уроке http://hyperbook.ru/blog.php?id=13628097918637 какие-то нелады с разнообразием описаний. Если сделать все по уроку, то получается, то первое описание совсем не выводится, а остальные чередуются. В чем загвоздка? Спасибо.

Неактивен

0    0    #391
03.02.2014 15:50

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

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

Из учебника:

В самом начале истории мы создадим объект «$селение», в котором будем запоминать номер описания сцены «Старое селение». Первоначально значение объекта «$селение» будет равно 1.

Т.е. в параграфе Start нужно написать:
<<set $селение = 1>>
Этой командой мы явно задаём начальное значение объекта. Если этого не сделать, значение объекта будет неопределённым (undefinied).
В учебнике все начальные значения объектов задаются в специальном параграфе "Создание объектов", который вызывается во вступлении. Смотрите главу "Инициализация объектов" в четвёртой части.

Неактивен

0    0    #392
04.02.2014 03:21

kalembet
Участник
Зарегистрирован: 03.02.2014
Сообщений: 2

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

Ай, спасибо ))

Неактивен

0    0    #393
07.02.2014 01:29

Delakha
Участник
Зарегистрирован: 31.01.2014
Сообщений: 6

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

Как из своего (скачанного) конструктора перенести игру в онлайновый? Путем копирование исходного кода (кнопой "Новая", затем "Из буфера обмена") не выходит , "ок" жмется, но увы, игра не появляется (окно, также, не закрывается).

Неактивен

0    0    #394
07.02.2014 07:02

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

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

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

Да, только так. А размер большой? Может просто тормозит и надо подождать? А вы копируете sm файл или исходник из режима редактора?

Неактивен

0    0    #395
07.02.2014 09:43

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

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

Собственно, дело именно в этом. Если копировать из редактора, то не выходит, а если открыть файл sm в блокноте и скопировать оттуда, то все отлично.
(В окошке онлайн конструктора так и написано: скопируйте исходный текст из файла *.sm)

Неактивен

0    0    #396
07.02.2014 10:56

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

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

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

Кстати, в грядущем обновлении я это уже поправил и можно будет вставлять и оттуда и оттуда.

Неактивен

0    0    #397
08.02.2014 09:39

Delakha
Участник
Зарегистрирован: 31.01.2014
Сообщений: 6

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

Благодарю за ответы! Разобралась и все получилось.

Неактивен

0    0    #398
12.02.2014 23:11

Atoll2
Участник
Зарегистрирован: 12.02.2014
Сообщений: 4

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

Здравствуйте! Я здесь человек новый, уж простите. если что не так. А вопрос у меня вот какой: можно ли сделать так, чтобы числовые переменные из одного параграфа прочитывались при нажатии на ссылку в другом параграфе.

Допустим, мы создаем примитивный симулятор жизни, где у героя есть 3 параметра: возраст. сила и интеллект. И вот наш герой размышляет над выбором профессии: кузнец или библиотекарь. Если станет кузнецом - то будет прокачивать силу, а если библиотекарем - то интеллект. Параграф Установка объектов выглядит так:

 спойлер…

Вступление выглядит вот так:

 спойлер…

А Основной параграф - так:

 спойлер…

Как ни странно, если нажимать ссылку "дальше", то увеличивается лишь возраст героя, а его сила и интеллект не обсчитываются!. Можно, конечно, прописать кусок:

<<If $кузнец eq true>>
    <<set $сила = $сила + 1>>
<<elseIf $библиотекарь eq true>>
    <<set $интеллект = $интеллект + 1>>
<<endIf>>

...прямо в основном параграфе, но для меня это не вариант (ведь таких кусков будет очень много). Как же быть? Как заставить их работать? Пробовал и так и эдак, но ничего не выходит, так что я уже в полной прострации... Помогите!

Файл с игрой здесь:
http://yadi.sk/d/W-aW_tn0Hnchj

Отредактировано Atoll2 (12.02.2014 23:24)

Неактивен

1    0    #399
13.02.2014 10:36

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

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

Привет! Просить прощения не нужно, это специальная тема для вопросов и ответов smile Программа работает совсем не странно, а вполне себе логично. Параграф «Установка объектов» выполнился один раз и всё. Чтобы какой-то код выполнился ещё раз, соответствующий параграф нужно вызвать (макросом <<display>>, <<goto>> или перейти в параграф по ссылке). Предлагаю перенести проверку профессии в новый параграф «Увеличение возраста», и написать там так:

Код:

<<set $время = $время + 1>>
<<If $кузнец>>
    <<set $сила = $сила + 1>>
<<elseIf $библиотекарь>>
    <<set $интеллект = $интеллект + 1>>
<<endIf>>
<<goto 'Основной параграф'>>

Конечно же из параграфа «Установки объектов» этот кусок кода надо убрать, т.к. ни одна из проверок там не работает (и $кузнец и $библиотекарь = false).

А в «Основном параграфе» внизу напишем так:
[[Повзрослеть|Увеличение возраста]]

П.С. И ещё один момент, относящийся к стилю программирования. Если мы проверяем логическую переменную на истинность, то пишем просто <<if $объект>>, если на ложность, то <<if not $объект>> или <<if !$объект>>.

Неактивен

0    0    #400
13.02.2014 10:59

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

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

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

П.С. И ещё один момент, относящийся к стилю программирования. Если мы проверяем логическую переменную на истинность, то пишем просто <<if $объект>>, если на ложность, то <<if not $объект>> или <<if !$объект>>.

Кстати есть один подводный камень при такой проверке. <<if $объект>> не будет истиной, если $объект = "" (пустая строка) или $объект = 0. Такое поведение ASM унаследовал от Javascript.

P.S. Наверное ещё стоит написать, что соответственно <<if $объект>> будет истиной, если $объект имеет любое значение, кроме 0, "" и false smile

Неактивен

Powered by PunBB
© copyright 2001–2019 iFiction.Ru